از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
وردپرس Nonce: چیست، چگونه کار می کند و چگونه آن را ایجاد کنیم
سرفصلهای مطلب
در رمزنگاری، nonce به عددی اشاره دارد که یک بار استفاده شده و برای محافظت از فرم ها و URL ها در برابر حملات هکری مخرب ایجاد می شود. معمولاً از حروف و اعداد تصادفی تشکیل شده است و طول عمر پیشفرض آن یک روز است و به عنوان ابزاری برای احراز هویت برای اقدامات و ورودیهای خاص عمل میکند.
وردپرس در میان بسیاری از پلتفرمهایی است که از این ویژگی امنیتی استفاده میکند، هرچند کمی آن را تغییر داده است. چه صاحب سایتی باشید که به دنبال بهبود امنیت پلتفرم خود هستید یا یک توسعه دهنده وردپرس که می خواهد از افزونه های شما در برابر کاربران مخرب محافظت کند، این مقاله به شما کمک می کند تا یک چیز را بهتر درک کنید.
همانطور که مزایای وردپرس nonce و روش ایجاد و تأیید nonces را بررسی می کنیم به خواندن ادامه دهید روی سایت های وردپرسی
Nonce در وردپرس چیست؟
Nonce وردپرس یک نشانه امنیتی “تعداد یک بار استفاده شده” برای محافظت از URL ها و فرم ها در برابر حملات مخرب است. این به وردپرس کمک می کند تا تشخیص دهد که آیا یک درخواست معتبر است یا خیر، از اقدامات و ورودی های غیرمجاز جلوگیری می کند.
چرا از Nonces وردپرس استفاده کنیم؟
Noces های وردپرس از پلت فرم در برابر حملات مخرب مختلف، به ویژه جعل درخواست بین سایتی (CSRF) محافظت می کنند. این حمله سایبری از آسیب پذیری های امنیتی وردپرس برای فریب کاربران برای ارسال درخواست های ناخواسته، از تغییر جزئیات ورود کاربران گرفته تا حذف حساب های کاربری، سوء استفاده می کند.
در اینجا نمونه ای از URL ایجاد شده توسط وردپرس است که زمانی که کاربر می خواهد پست ها را حذف کند.
http://yourwebsite.com/wp-admin/post.php؟post=123&action=trash
اگر این URL را اجرا کنید، وردپرس کوکی احراز هویت خود را برای تأیید درخواست حذف برای پست “123” بررسی می کند.
مشکل این است که یک حمله CSRF می تواند به راحتی این پیوند درخواست را به عنوان چیز دیگری پنهان کند. وقتی کاربر کلیک می کند روی مرورگر کوکی احراز هویت را ضمیمه می کند و آن را مانند یک درخواست معتبر جلوه می دهد. در نتیجه، سایت وردپرس درخواست سرکش HTTP را اجرا می کند و محتوای سایت را به خطر می اندازد.
Nonces با افزودن یک لایه حفاظتی اضافی به URL از حملات CSRF جلوگیری می کند. در اینجا نمونهای از URL ایجاد شده توسط یک وبسایت وردپرس با تأیید غیر مستقیم است.
http://yourwebsite.com/wp-admin/post.php؟post=123&action=trash&_wpnonce=b192fc4204
اگر سعی کنید بدون داشتن nonce درست توسط وردپرس به آن URL بروید، یک 403 Forbidden همراه با “آیا مطمئن هستید که می خواهید این کار را انجام دهید؟” مشاهده خواهید کرد. پیغام خطا.
به خاطر داشته باشید که نونس های وردپرس، بر خلاف نونس های واقعی، تا زمانی که هنوز معتبر هستند، می توانند بیش از یک بار استفاده شوند. nonces وردپرس نیز به طور خاص برای هر جلسه تولید می شود، به این معنی که پس از ورود یا خروج کاربر، ارزش آنها دیگر معتبر نخواهد بود. page.
روش ایجاد Nonce در وردپرس
ایجاد nonces در وردپرس نیازمند افزودن کد به وردپرس است functions.php فایل. می توانید فایل را با استفاده از مدیریت فایل ارائه دهنده هاست خود ویرایش کنید. از طرف دیگر، از یک سرویس گیرنده FTP مانند FileZilla برای ایجاد تغییرات استفاده کنید.
برای ایجاد یک nonce برای URL، با شماره تماس بگیرید wp_nonce_url() تابع. URL خالی و رشته ای که یک عمل nonce را در داخل براکت ها نشان می دهد را مشخص کنید. در اینجا یک مثال از nonce برای حذف یک حساب کاربری آورده شده است.
$nonce = wp_nonce_url( $bare_url, ’delete-user_’.$user->ID );
می توانید با فراخوانی یک nonce به فرم اضافه کنید wp_nonce_field() عملکرد در حالی که رشته را برای عملکرد کاربر خود مشخص می کند. این تابع به طور پیشفرض دو فیلد پنهان ایجاد میکند – اولین فیلد پنهان حاوی مقدار nonce است در حالی که دومی URL فعلی را نگه میدارد. در اینجا یک مثال از nonce برای حذف یک نظر است.
$nonce= wp_nonce_field( 'delete-comment_'.$comment_id );
برای اضافه کردن nonces در زمینه های دیگر، از عبارت استفاده کنید wp_create_nonce() تابع. مانند توابع قبلی، فراموش نکنید که رشته ای را که یک عمل خاص را نشان می دهد، مشخص کنید.
$nonce = wp_create_nonce( 'my-action_'.$post->ID );
طول عمر پیش فرض یک نونس 24 ساعت است. استفاده کنید nonce_life فیلتر برای تغییر طول عمر nonce در ثانیه.
$nonce_life = apply_filters( 'nonce_life', DAY_IN_SECONDS );
چگونه یک Nonce را در وردپرس تأیید کنیم
می توانید برای بررسی وردپرس تماس بگیرید روی nonces تعبیه شده در URL ها، فرم ها، درخواست های AJAX یا سایر زمینه ها. وردپرس اجرای اسکریپت را خاتمه می دهد و در صورت عدم موفقیت چک، پاسخ 403 Forbidden را برمی گرداند.
استفاده کنید check_admin_referer() تابعی برای تأیید nonces ارسال شده از یک فرم در صفحه مدیریت. نام فیلد nonce را برای حداکثر حفاظت مشخص کنید، به خصوص اگر از پیش فرض استفاده نمی کنید _wpnonce نام زمینه.
در اینجا یک مثال سریع از یک nonce است که درخواست حذف یک نظر را تأیید می کند.
check_admin_referer( 'delete-comment_'.$comment_id );
برای تأیید یک nonce در یک درخواست AJAX، با شماره تماس بگیرید check_ajax_referer() تابع و رشته ای که عمل را نشان می دهد را مشخص کنید.
check_ajax_referer( 'process-comment' );
برای فراخوانی چک های غیرمنتظره در زمینه دیگری، از عبارت استفاده کنید wp_verify_nonce() تابع و رشته را برای یک اقدام کاربر مشخص کنید.
wp_verify_nonce( $_REQUEST['my_nonce'], 'process-comment'.$comment_id );
مهم! هرگز به دلایل امنیتی یک nonce را با سایر کاربران به اشتراک نگذارید. به یاد داشته باشید که از nonces وردپرس می توان چندین بار برای احراز هویت و مجوز استفاده کرد تا زمانی که هنوز معتبر هستند.
نتیجه
Noces های وردپرس از سایت ها در برابر کاربران مخربی که به دنبال اجرای اقدامات غیرمجاز کاربر هستند محافظت می کند. به طور خلاصه، nonces با جاسازی یک رشته پرس و جو در URL ها و فرم ها در صفحه های مدیریت کار می کند، و اطمینان حاصل می کند که درخواست ها معتبر هستند و از یک کاربر قانونی می آیند.
Nonces ممکن است به محافظت از سایت های وردپرس در برابر حملات CSRF کمک کند. با این حال، انواع دیگر حملات به اقدامات امنیتی متفاوتی نیاز دارند. توصیه میکنیم بهترین روشهای امنیتی وردپرس را برای محافظت حداکثری در سایت خود پیادهسازی کنید.
امیدواریم این مقاله به سوالات شما در مورد nonces وردپرس پاسخ دهد. موفق باشید!
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-29 18:21:03