با عرض سلام خدمت کاربران محترم سایت پی وی لرن.
با جلسه ای دیگر از سری جلسات دوره جامع آموزش ساخت قالب وردپرس در خدمت شما هستیم.
در چند جلسه قبل به آموزش Sanitization و Escape داده ها در وردپرس پرداختیم.
در این جلسه قصد داریم به معرفی انواع آسیب پذیری های رایج وردپرس بپردازیم.
امنیت هیچ گاه به طور مطلق بر قرار نبوده و کاربران و سایت ها همواره در توسط هکر ها و حملات اینترنتی تهدید میشوند میشوند.
در ادامه به معرفی انواع آسیب پذیری های رایج در وب و همچنین راه های مقابله را معرفی میکنیم که میتوانید از سایت و قالب خود در برابر آن ها محافظت کنید.
البته این آسیب پذیری ها فقط مختص به وردپرس نیستند و تمام سایت ها توسط این آسیب پذیری ها تهدید میشوند.
SQL Injection یا تزریق sql، زمانی اتفاق میافتد که داده های وارد شده به طور صحیح Sanitize (پاکسازی) نشوند و اجازه دهند هر دستور SQL در داده های ورودی، به طور بالقوه اجرا شوند.
اولین قانون برای مقابله با sql injection این است که اگر تابعی در API وردپرس وجود دارد، از آن استفاده کنید. (توابع مربوط به کار با دیتابیس)
اما گاهی اوقات نیاز به کوئری های پیچیده تری هست که API وردپرس از ان پشتیبانی نمی کند.
در این موارد همیشه از توابع wpdb$ استفاده کنید. این توابع برای محافظت از دیتابیس شما در برابر sql injection طراحی شده اند.
برای جلوگیری از حملات تزریق sql، تمام کوئری های sql باید قبل از اجرا SQL-Escaping شوند.
بهترین تابع برای استفاده از SQL-Escaping، تابع ()wpdb->prepare$ است.
1 2 3 4 5 | $wpdb->get_var( $wpdb->prepare( "SELECT something FROM table WHERE foo = %s and status = %d", $name, // an unescaped string (function will do the sanitization for you) $status // an untrusted integer (function will do the sanitization for you) ) ); |
حملات XSS زمانی اتفاق میافتند که کد های جاوا اسکریپت به یک صفحه وب تزریق شوند.
با Escape کردن خروجی و حذف داده های ناخواسته، از این آسیب پذیری جلوگیری کنید.
از آن جایی که وظیفه اصلی یک قالب نمایش و استخراج محتوا است، یک قالب باید محتوای پویا را با استفاده از توابع مناسب، Escape کند.
یک مثال از توابع Escaping در کد زیر نشان داده شده است. این تابع URL پروفایل یک کاربر را Escape میکند.
1 | <img src="<?php echo esc_url( $great_user_picture_url ); ?>" /> |
CSRF (بخوانید سیسِرف)، به حملاتی گفته میشود که در آن هکر با فریب کاربر، آن را مجاب به انجام یک عمل ناخواسته در یک برنامه وب میکند که هویت کاربر در آن برنامه تأیید شده است.
بدین ترتیب هکر از هویت کاربر سوء استفاده کرده و عمل خویش را با موفقیت انجام میدهد.
برای مثال هکر یک ایمیل حاوی یک لینک به کاربر مورد نظر میفرستد که با کلیک روی این لینک اکانت یک کاربر حذف میشود. و از آن جایی که هویت کاربر قربانی تأیید شده است، این درخواست با موفقیت انجام میشود.
همانطور که در جلسه معرفی Nonce ها در وردپرس گفتیم، برای جلوگیری از وقوع این نوع حملات از nonce ها استفاده میکنیم.
1 2 3 4 | <form method="post"> <!-- some inputs here ... --> <?php wp_nonce_field( 'name_of_my_action', 'name_of_nonce_field' ); ?> </form> |
جلسه معرفی انواع آسیب پذیری های رایج وردپرس نیز به پایان رسید.
در جلسه بعد به آموزش تنظیمات حریم خصوصی قالب وردپرس خواهیم پرداخت.