过去几天有报道称[1][2] 针对 WordPress 网站的攻击。在这篇博文它描述了如何使用.htaccess
以下内容来缓解自动登录尝试:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_METHOD} =POST
RewriteCond %{HTTP_REFERER} !^http://(.*)?.example.com [NC]
RewriteCond %{REQUEST_URI} ^/wp-login\.php(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^/wp-admin$
RewriteRule ^(.*)$ - [R=403,L]
</IfModule>
如何使它与 Microsoft IIS 配合使用?可以.htaccess
按原样与 IIS 配合使用,还是必须进行转换?如果是,最快的方法是什么?
答案1
.htaccess 可以按原样与 IIS 一起使用吗,还是必须进行转换?
是的,IIS 的 .htaccess 对应部分是 web.config 文件,您应该能够在 wordpress 根文件夹下找到它。
如何使其与 Microsoft IIS 协同工作?
在我看来,您提供的 .htaccess 片段试图阻止对 wp-admin 和 wp-login.php 的访问,并向请求者发出 403(拒绝访问)。您可以按照以下步骤实现此目的:
1,打开 wordpress 根文件夹中的 web.config 文件,如果找不到,请创建一个
2,按照以下步骤启用“IP 和域限制”角色本文
3、打开IIS管理器,点击根节点,在右侧面板中选择“功能委派”,找到“IPv4 地址和域限制”项,授予其“读/写”委派
4、打开web.config文件,如果该文件是你自己创建的并且为空,则添加以下代码(解释见底部的注释):
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<location path="wp-login.php">
<system.webServer>
<security>
<ipSecurity allowUnlisted="false">
<clear/>
<add ipAddress="100.100.100.29" allowed="true"/>
<add ipAddress="111.111.111.0" subnetMask="255.255.255.0" allowed="true"/>
</ipSecurity>
</security>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
</location>
<location path="wp-admin">
<system.webServer>
<security>
<ipSecurity allowUnlisted="false">
<clear/>
<add ipAddress="100.100.100.29" allowed="true"/>
<add ipAddress="111.111.111.0" subnetMask="255.255.255.0" allowed="true"/>
</ipSecurity>
</security>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
</location>
</configuration>
如果您正在处理现有的 web.config 文件,那么您只需要在 web.config 中的现有标签之间添加代码。
说明:此代码阻止所有 IP 访问 wp-login.php 或 wp-admin,但 IP 100.100.100.29 和 111.111.111.1-255 除外。请将这些 IP 替换为您自己的列表。
5、现在尝试从不在列表中的 IP 访问 wp-login.php 或 wp-admin,您应该会收到 403 - 访问被拒绝错误。