سبد خرید

10 رول انجین ایکس Nginx برای بالا بردن امنیت وردپرس

10 رول انجین ایکس Nginx برای بالا بردن امنیت وردپرس

امروز میخواهیم در ویرا وردپرس 10 رول انجین ایکس برای بالا بردن امنیت وردپرس آموزش بدیم پس در ادامه با ما همراه باشید.

وردپرس تا به امروز محبوب ترین CMS با بیش از 30٪ سهم بازار در وب است. با چنین میزان سهم بازار ، وردپرس اغلب به هدف تهدیدهای امنیتی تبدیل می شود. بنابراین برای یک صاحب سایت وردپرس ، بهتر است برخی اقدامات را برای سخت تر کردن امنیت سایت خود انجام دهید.

از آنجا که هزاران وب سایت در Nginx اجرا می شوند ، من نکات اساسی یا قوانین Nginx را برای سخت تر کردن امنیت سایت وردپرس شما جمع آوری کرده ام.

1. دسترسی XMLRPC را محدود کنید

نقطه پایانی XMLRPC در WordPress استفاده می شود تا یک برنامه خارجی با داده های وردپرس ارتباط برقرار کند. به عنوان مثال ، می تواند اضافه کردن ، ایجاد یا حذف یک پست را مجاز سازد. با این حال ، XMLRPC همچنین یک بردار حمله متداول است که در آن حمله کننده ممکن است بتواند آن عملیات را بدون مجوز انجام دهد. بهتر است درخواست IPRPC در آی پی های مجازی که داری فعال کنید تا از هر آی پی نتوانند دسترسی به این بخش داشته باشند به طور مثال :

location ~* /xmlrpc.php$ {
    allow 172.0.1.1;
    deny all;
}

پس از افزودن موارد فوق ، باید هنگام اجرا فایل xmlrpc.php در مرورگر ، پاسخ کد خطای 403 را مشاهده کنید.

 

2. انواع درخواست را محدود کنید

بیشتر اوقات ممکن است وب سایت شما فقط دو نوع درخواست را انجام دهد یعنی برای بازیابی اطلاعات از سایت و POST برای بارگذاری اطلاعات در سایت شما. محدود کردن نوع درخواستی که سایت ما می تواند فقط با این دو صدا کند مانند یک ایده خوب برای امنیت بیشتر سایت شما هست کد زیر توجه کنید :

if ($request_method !~ ^(GET|POST)$ ) {
    return 444;
}

 

حتما بخوانید :)  چگونه حملات DDoS در وردپرس متوقف و جلوگیری کنیم

3. دسترسی مستقیم به فایل PHP

اگر به نوعی ، یک هکر با موفقیت بتواند به یک فایل پی اچ پی روی سایت شما دسترسی یابت و استفاده کند ، می تواند این فایل را با بارگذاری پرونده اجرا کند که به طور موثری برای نفوذ به سایت شما تبدیل می شود. ما باید با اضافه کردن قوانین زیر دسترسی مستقیم به فایلهای PHP را غیرفعال کنیم:

location ~* /(?:uploads|files|wp-content|wp-includes|akismet)/.*.php$ {
    deny all;
    access_log off;
    log_not_found off;
}

4- Dotfiles

مشابه پرونده PHP ، یک dotfile مانند .htaccess ، .user.ini و .git ممکن است حاوی اطلاعات حساسی باشد. برای اینکه در سمت مطمئن تری قرار داشته باشید ، بهتر است دسترسی مستقیم به این پرونده ها را غیرفعال کنید.

location ~ /\.(svn|git)/* {
    deny all;
    access_log off;
    log_not_found off;
}
location ~ /\.ht {
    deny all;
    access_log off;
    log_not_found off;
}
location ~ /\.user.ini { 
    deny all; 
    access_log off;
    log_not_found off;
}

5- نسخه Nginx و PHP را مخفی کنید
بهتر است برخی از اطلاعات مانند نسخه Nginx و همچنین نسخه PHP در معرض دید قرار نگیرند. این مانع از خود حمله نمی شود. با این حال ، با فرض اینکه نسخه خاص Ningx یا PHP معلوم باشد ، آسیب پذیری بیشتری در معرض آن قرار دارد ، مهاجم نمی تواند از سایت شما به راحتی آگاه شود. برای مخفی کردن نسخه Nginx از کد زیر استفاده کنید :

#Hide the nginx version.
server_tokens off;
#Hide the PHP version.
fastcgi_hide_header X-Powered-By;
proxy_hide_header X-Powered-By;

6. هدرهای امنیتی

هدرهای امنیتی با بیان رفتارهای مرورگر ، لایه ای از امنیت بیشتری را فراهم می كنند. به عنوان مثال ، گزینه های X-Frame مانع از بارگذاری سایت شما از iframe می شود ، مگر اینکه از سایت خود شما باشد. Strict-Transport-Security مرورگر را مجبور می کند تا سایت شما را از HTTPS بارگیری کند.

add_header X-Frame-Options SAMEORIGIN;
add_header Strict-Transport-Security "max-age=31536000";
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";

7. مسدود کردن دسترسی فرعی

اگر سایت شما در زیر فهرست مانند / وبلاگ قرار دارد ، بهتر است اجازه دسترسی به این زیر فهرست را بدهید. این بدان معناست که هرگونه دسترسی مبهم به فهرستهای دیگر که همیشه یک مهاجم به دنبال آن است ، به عنوان مثال ، /82jdkj/؟.php مسدود شده است.

location ~ ^/(?!(blog)/?) { 
    deny all;
    access_log off;
    log_not_found off;
}

8- اسپم را کاهش دهید

نظر هرزنامه ، اگرچه ممکن است سایت شما را خراب نکند ، اما پایگاه داده شما را با محتوای زباله یا محتوای مخرب که احتمالاً می تواند به عنوان اهرم مخرب برایی خراب کردن سایت شما خواهد شد برای کاهش ورودی های اسپم ، می توانید قوانین زیر را در پیکربندی Nginx خود به همراه یک افزونه محافظت در برابر Spam مانند Akismet اضافه کنید.

set $comment_flagged 0;
set $comment_request_method 0;
set $comment_request_uri 0;
set $comment_referrer 1;
 
if ($request_method ~ "POST"){
    set $comment_request_method 1;
}
 
if ($request_uri ~ "/wp-comments-post\.php$"){
    set $comment_request_method 1;
}
 
if ($http_referer !~ "^https?://(([^/]+\.)?site\.com|jetpack\.wordpress\.com/jetpack-comment)(/|$)"){
    set $comment_referrer 0;
}
 
set $comment_flagged "${comment_request_method}${comment_request_uri}${comment_referrer}";
if ($comment_flagged = "111") {
    return 403;
}

 

حتما بخوانید :)  چگونه حملات DDoS در وردپرس متوقف و جلوگیری کنیم

9. محدود کردن درخواست ها

صفحه ورود به سایت وردپرس ، wp-login.php ، یک نقطه پایانی مشترک برای حمله بی رحمانه است. مهاجم سعی خواهد کرد با ارسال چندین نام کاربری و رمز عبور سایت شما را از بین ببرد و این کار معمولاً چندین بار در ثانیه انجام می شود.

برای این کار ، ما می توانیم قانونی را اعمال کنیم که تعداد درخواست هایی را که صفحه در هر ثانیه می تواند دریافت کند را محدود کنم. در اینجا ما حد مجاز را به 2 درخواست در هر ثانیه تنظیم می کنیم ، در غیر این صورت ، این درخواست مسدود خواهد شد.

limit_req_zone $binary_remote_addr zone=WPRATELIMIT:10m rate=2r/s;
location ~ \wp-login.php$ {
    limit_req zone=WPRATELIMIT;
}

10. غیرفعال کردن فهرست دایرکتوری

در آخر ، شما باید فهرست دایرکتوری را غیرفعال کنید تا مهاجم نتواند از آنچه در دایرکتوری است مطلع شود. دلیل بسیار کمی وجود دارد که می دانم لیست دایرکتوری ها در یک سایت وردپرس مفید است.

autoindex off;

خب امیدوارم این آموزش برای کانفیگ هرچه بهتر سرور سایت های وردپرسی مفید بوده باشه تا بتونید از هکر ها در امان باشید.

نظرات و تجربیات خود را در زیر همین پست کامنت بگذارد تا تبادل نظر کنیم.

دیدگاه‌ها ۰