定风波 — 苏轼

莫听穿林打叶声,何妨吟啸且徐行。

竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生。

料峭春风吹酒醒,微冷,山头斜照却相迎。

回首向来萧瑟处,归去,也无风雨也无晴。

wp-admin 与 wp-login.php wp-cron.php防护

在后台日志中,经常发现wp-login.php wp-cron.php xmlrpc.php wp-admin 等被机器访问

如果你有一个固定IP,或者能利用主机的SSH代理登录访问

比如我的主机IP是 15.164.48.65 (修改为你自己的IP地址 )

可以修改wordpress安装目录下的 .htaccess 为

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteRule ^xmlrpc\.php$ https://xl.cool [L,R=301]
</IfModule>

# Allow only specific IP addresses to access wp-admin and wp-login.php
<FilesMatch "^(wp-admin|wp-login\.php|wp-cron\.php)$">
    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{REMOTE_ADDR} !^127\.0\.0\.1$
        RewriteCond %{REMOTE_ADDR} !^15\.164\.48\.65$
        RewriteRule ^ https://xl.cool [L,R=301]
    </IfModule>
    <IfModule !mod_rewrite.c>
        Order deny,allow
        Deny from all
        Allow from 127.0.0.1
        Allow from 15.164.48.65
    </IfModule>
</FilesMatch>

# END WordPress

这样,如果其他IP访问,就会自动跳转到 博客首页了。

而且只要用你的固定IP登录后,就可以切换回来,依然是可以登录后台的。

xmlrpc.php 经常被攻击的问题

可以编辑 .htaccess文件, 例:


# BEGIN WordPress
# 在“BEGIN WordPress”与“END WordPress”之间的指令(行)是
# 动态生成的,只应被WordPress过滤器修改。
# 任何对标记之间的指令的修改都会被覆盖。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteRule ^xmlrpc\.php$ https://xl.cool [L,R=301]
</IfModule>
# END WordPress

增加上面加粗的那一句,就可以301重定向到你的博客了. (域名改成你的博客)

虽然对方是来攻击的,但也别浪费了他的流量:)

如果你想完全禁止xmlrpc.php的访问, .htaccess 就可以这样写:


# BEGIN WordPress
# 在“BEGIN WordPress”与“END WordPress”之间的指令(行)是
# 动态生成的,只应被WordPress过滤器修改。
# 任何对标记之间的指令的修改都会被覆盖。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

<Files xmlrpc.php>
Order Allow,Deny
Deny from all
</Files>

只要增加上面加粗部分的代码,就可以完全阻挡访问了.

方法二选一.