我有一个wordpress网站。最近在wp-login.php遭受了一次严重的拒绝服务攻击。我已经将wp-login.php重命名为一个新的mysitename-login.php。并创建一个新的名为wp-login.php的空文件。我已经加入了云still,仍然在access_log中收到攻击日志。我试过mod_evasive,但它会杀死googlebot
现在,我会像这样将它们添加到我的.htaccess中
<Limit GET POST>
order allow,deny
deny from 108.162.253.180
deny from 173.245.48.134
deny from 173.245.49.187
deny from 173.245.51.180
deny from 173.245.54.66
deny from 108.162.219.
deny from 109.239.235.
allow from all
</Limit>我有一个创建.htaccess动态的想法。
在当前wp-login.php中
$ip=$_SERVER['REMOTE_ADDR'];
// INSERT INTO ip_table (ip) values ($ip);
// ip is unique index
$html='<Limit GET POST>/n/r'
$html.=//select * from ip_table loop all
$html.='allow from all/n/r</Limit>';
$html.=<<<TXT
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
TXT;
file_put_content($html,'/var/www/html/.htaccess');但是我担心,如果在file_put_content过程中有一些问题,.htaccess坏了,我的网站也会坏掉…
有没有更好的方法,通过使用robot access wp_login.php创建黑名单,并且没有被破坏的风险?
谢谢。
发布于 2015-01-13 04:24:11
与其创建黑名单,为什么不创建白名单呢?如果你允许所有用户登录Wordpress,这是行不通的,例如,如果你使用一个会员插件,但如果只有你和几个精选的管理员登录,那么只需获得每个人的IP地址,并将这些地址添加到你的.htaccess文件中,如下所示:
## Prevent anyone not on my ip whitelist from accessing wp admin
RewriteCond %{REQUEST_URI} ^(/wp-admin|/wp-login.php).*$
RewriteCond %{REMOTE_ADDR} !=111.111.111.111
RewriteCond %{REMOTE_ADDR} !=222.222.222.222
RewriteCond %{REMOTE_ADDR} !=333.333.333.333
RewriteRule ^.*$ / [R=301,L]发布于 2017-02-07 02:19:06
使用mod_evasive for Apache怎么样?通过这种方式,您可以在短时间内很容易地阻止所有经常尝试连接到某个URL的IP。
您可以阻止所有IP,将试图连接到您的假登录页面,以及。
https://stackoverflow.com/questions/27910067
复制相似问题