وردپرس یک پلت فرم محبوب است که بیشتر محبوبیت آن به خاطر ویژگی های قوی از جمله تمپلیت های متعدد و جامعه بزرگ پشتیبانی آن است.
متاسفانه به دلیل چنین محبوبیتی، وردپرس به طور مداوم، بایستی در جهت رفع آسیب پذیری تلاش کند. قابلیت اطمینان وردپرس و هر پلاگین وابسته به آن برای ورژنهای نصب شده ی موجود، یک قابلیت مهم برای تامین امنیت سایت شما می باشد. با این اوصاف،modsecurity میزان قابل توجهی امنیت را با ارائه دادن یک نرم افزار فایروال، فراهم می کند.
Modsecurity که با عنوان “modsec” هم شناسایی می شود مفید بودنش برای موقعیت های مختلف به اثبات رسیده است و هم چنین با کمک آن در وردپرس تلاشهای بی وقفه در زمینه ی حمله متوقف خواهد شد. در حالیکه تعدادی از پلاگین های وردپرس برای جلوگیری از چنین حملاتی،وجود دارند Rule های سفارشی modsec می توانند از چنان حملاتی برای همه ی وردپرس های نصب شده بر روی سرور جلوگیری کنند. Mod sec بلافاصله درخواستهای HTTP را فیلتر می کند تا از منابع سرور محافظت کند.
این Rule ها دسترسی برای آی پی آدرس های مختلف را پس از 10 بار تلاش ناموفق برای لاگین در طول مدت 3 دقیقه،به مدت 5 دقیقه بلاک خواهد کرد.
این قوانین به طور خودکار در قوانین سفارشی برای سرورهای مدیریت شده توسط پویاسازان،به روز می شود. برای مشتریان بدون خدمات مدیریت این قوانین می توانند در قوانین modsec سفارشی اضافه شوند. برای انجام این کار، rule های modsec را ویرایش نمایید و فایلی با قوانین ارائه شده در زیر را به آن اضافه کنید، برای سرورهای Cpanel این فایل به احتمال زیاد در مسیر /usr/local/apache/conf/ قرار داده شده است.
SecAction phase:1,nolog,pass,initcol:ip=%{REMOTE_ADDR},initcol:user=%{REMOTE_ADDR},id:5000134
# Setup brute force detection.
# React if block flag has been set.
SecRule user:bf_block “@gt 0” “deny,status:401,log,id:5000135,msg:’ip address blocked for 5 minutes, more than 10 login attempts in 3 minutes.'”
# Setup Tracking. On a successful login, a 302 redirect is performed, a 200 indicates login failed.
SecRule RESPONSE_STATUS “^302” “phase:5,t:none,nolog,pass,setvar:ip.bf_counter=0,id:5000136”
SecRule RESPONSE_STATUS “^200” “phase:5,chain,t:none,nolog,pass,setvar:ip.bf_counter=+1,deprecatevar:ip.bf_counter=1/180,id:5000137”
SecRule ip:bf_counter “@gt 10” “t:none,setvar:user.bf_block=1,expirevar:user.bf_block=300,setvar:ip.bf_counter=0”