با عرض سلام خدمت کاربران محترم سایت پی وی لرن.
با جلسه ای دیگر از سری جلسات دوره جامع آموزش ساخت قالب وردپرس در خدمت شما هستیم.
در این جلسه قصد داریم به معرفی Nonce ها در وردپرس بپردازیم.
Nonce ها توکن های امنیتی یک بار مصرف هستند که برای محافظت از URL ها در برابر سوء استفاده، توسط وردپرس تولید میشوند.
اگر قالب شما به کاربران (چه ادمین و چه عادی) اجازه ارسال داده ها را میدهد، برای تأیید قصد کاربر برای انجام یک عمل و همچنین جلوگیری از حملات CSRF (جعل درخواست) از Nonce ها استفاده میکنیم.
برای مثال در یک سایت وردپرسی، فقط کاربرانی که هویت آن ها تأیید شده است، مجاز به آپلود ویدیو هستند.
حال یک هکر میتواند هویت یک کاربر مجاز را جعل کرده و کارهایی که کاربر مجاز به انجام آن ها است را انجام دهد. (با استفاده از حملات CSRF)
Nonce ها فقط برای session کاربر فعلی منحصر به فرد هستند. بنابراین هرگونه تلاشی جهت لاگین و یا درخواست بدون Nonce ها، نامعتبر است.
در این مثال ما یک فرم ارسال ساده داریم.
برای امن کردن فرم با استفاده از nonce، یک فیلد مخفی ایجاد کنید که از تابع ()wp_nonce_field استفاده کند.
1 2 3 4 | <form method="post"> <!-- some inputs here ... --> <?php wp_nonce_field( 'name_of_my_action', 'name_of_nonce_field' ); ?> </form> |
ابتدا بررسی میکنیم که آیا فیلد nonce تنظیم شده است یا نه. به همین دلیل اگر فرم ارسال نشده باشد، چیزی را اجرا نمیکنیم.
هنگامی که فرم ارسال شود، از مقدار فیلد nonce استفاده میکنیم.
اگر nonce معتبر باشد، داده های فرم میتوانند پردازش شوند.
1 2 3 4 5 6 7 8 9 10 11 12 | if ( ! isset( $_POST['name_of_nonce_field'] ) || ! wp_verify_nonce( $_POST['name_of_nonce_field'], 'name_of_my_action' ) ) { print 'Sorry, your nonce did not verify.'; exit; } else { // process form data } |
جلسه معرفی Nonce ها در وردپرس نیز به پایان رسید.
در جلسه بعد به معرفی انواع آسیب پذیری های رایج وردپرس خواهیم پرداخت.