我假设您试图阻止扫描仪获取您的站点用户名。为了安全起见,我认为应该在第一个可能的外围大门进行封锁,即。htaccess不是PHP。
不知道细分曲面为什么会导致问题;您可以尝试将您的条件添加到根目录和WP子目录中的htaccess文件中,这肯定不会造成任何伤害。我使用的重写条件与您的非常相似,它适用于我在subdir中有WP或没有WP的站点:
RewriteCond %{QUERY_STRING} author=
# redirect away from site
RewriteRule (.*) https://www.fbi.gov/investigate/cyber/%1 [R=302,L]
我还使用了
Jeff Starr\'s 6G "firewall" 额外检查
WPScan
用户代理。该扫描器深受黑客欢迎,一些在线“输入URL”安全扫描器也使用该扫描器来识别管理员用户、使用易受攻击的插件等。显然,用户可以更改UA,但合法的在线扫描器和脚本小子似乎并不介意:
<IfModule mod_setenvif.c>
# numerous 6G UA Checks (OMITTED)
#check for WPScan
SetEnvIfNoCase User-Agent "WPScan" bad_bot
# Apache >= 2.3
<IfModule mod_authz_core.c>
<RequireAll>
Require all Granted
Require not env bad_bot
</RequireAll>
</IfModule>
</IfModule>
re M Kaplun\'s comment on OP:
我不知道
Mark\'s plugin; 尽管我对PHP发表了评论,但它显然是一个很好的开箱即用的一站式解决方案。我采用了另一种方法(通过Mark提到的主题“解决”了用户名泄漏的问题)。
更改显示名称(通过WP Dashboard)和作者slug(在users表中编辑“user\\u nicename”;或使用Edit Author Slug plugin) 与用户名完全不同。
因此:
对作者querystring(黑客)的请求进行重定向(上面有2行htaccess)。
通过主题添加到帖子的作者链接仍然友好(&L);工作它们会将您带到相关的“作者页面”——但作者slug不再识别用户名。e、 g.在我的网站上,(有效的)作者链接(显示名称“AW”)会将您带到https://wptest.means.us.com/author/not-for-scanners/
查看我的帖子列表。
对于作者众多的网站来说,这是不现实的。也许(@Mark kaplen@Mark kaplen)的插件可以扩展以自动更改段塞(散列数据库中的所有user\\u nicename?)?
Are publicly viewable usernames a risk?
Wordpress。组织一致认为用户名“泄漏”是
not a security risk . 但它提供了潜力
for some users to be hacked on first attempt (no brute force needed).
你不需要是个天才就能意识到/author/hclintongmailcom
表示他们是作者,电子邮件和(不区分大小写)用户名为hclinton@gmail.com
.
有10亿多个电子邮件地址的黑客密码列表(根据回忆)(针对一小部分尝试您的密码https://haveibeenpwned.com/); 许多用户在不同的站点上使用相同的从不更改密码。So an author with an email username and a password compromised on another site might be "hacked" at first attempt on your site.