此.htaccess安全设置真的有效吗?

时间:2018-10-14 作者:Henry

这是什么意思。htaccess做什么?

我是否正确地认为,它所做的一切都是防止自动暴力攻击?

因此,要访问wp登录。php您必须手动键入域的URL,这样会拒绝所有寻求wp登录的机器人程序。php

我说得对吗?

这是。htaccess规则:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{HTTP_REFERER} !^https://(.*)?my-domain.com [NC]
RewriteCond %{REQUEST_URI} ^(.*)?wp-login\\.php(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$
RewriteRule ^(.*)$ - [F]
</IfModule>

3 个回复
SO网友:Jacob Peattie

它似乎可以阻止对wp登录的任何POST请求。不是从我的域上的页面生成的php。com。

当浏览器发送POST请求时,比如在提交表单后,它将包含一个HTTP Referer标头,告诉服务器请求来自何处。

从理论上讲,这可以防止机器人直接向wp登录提交POST请求。php是蛮力攻击的一部分,但HTTP引用器很容易伪造,因此实际上没有多大帮助。

SO网友:tim

What this doesn\'t prevent: Brute Force

它所做的一切就是防止自动暴力攻击?

不。这不能防止暴力攻击。

在暴力攻击中,攻击者可以控制HTTP请求的所有参数。这包括referer。由于攻击者可以发送任意引用,这并不能阻止暴力攻击。(几乎)所有暴力工具都允许设置引用者,而将站点本身设置为引用者是相当标准的。

防止暴力的机制包括基于IP或用户名以及CAPTCHA的禁止或限制。

What this might be intended to prevent: CSRF

此代码可能已缩进,以向管理区域的所有POST请求添加引用者检查。如果referer无效,则拒绝请求。

在CSRF攻击中,攻击者强制受害者执行状态更改POST请求。这可以通过向攻击者发布HTML和Javascript代码来实现。com,然后自动向受害者发送请求。一旦经过身份验证的受害者访问该网站。

Referer检查是防止CSRF的一种机制。作为唯一的受害者。com被接受为有效的引用者,攻击者无法强制受害者从其自己的域发送请求。

当然,WordPress有自己的CSRF保护(通过反CSRF nonces)。但它可能不会涵盖所有情况,插件的安全性在很大程度上取决于插件开发人员。

额外的referer检查有助于防止WP核心,尤其是插件中的CSRF漏洞被利用。

当然,如果这是故意的,那么代码就被窃听了。这个$ 在里面RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$ 阻止检查大多数请求。

该检查也可以轻松绕过。将接受以下推荐人:

Referer: http://example.com.org
Referer: http://not-example.com
Referer: http://notexample.com
Referer: http://attacker.com/example.com
[...]
要增加站点的安全性,需要首先解决这两个问题。还可以通过不局限于POST请求来进一步改进代码(在写得不好的应用程序中,GET请求也可能更改服务器状态,或者POST请求可以转换为GET请求)。由于该检查仅适用于管理员,因此不应限制可用性。

SO网友:Electron

上述代码部分正确helps 通过只允许直接来自您的域的登录请求来保护您的WordPress站点。

大多数暴力攻击直接向您的wp登录发送POST请求。php脚本。因此,要求POST请求将您的域作为推荐者有助于阻止这些机器人程序。

如果您有一个静态IP,则可以使用以下代码更进一步:

RewriteEngine on 
RewriteCond %{REQUEST_URI} ^(.*)?wp-login\\.php(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$
RewriteCond %{REMOTE_ADDR}!^111\\.111\\.111\\.111$
RewriteRule ^(.*)$ - [R=403,L]
*替换为静态IP地址。

*如果您的站点支持CloudFlare等DNS服务,则可能无法正常工作。

结束

相关推荐

使用.htaccess或挂钩重写URL

我有自定义模板,在该自定义模板中,我根据下拉列表过滤数据。我正在使用GET方法过滤这些数据。如果浏览器点击此url:-http://localhost/about-fruad-new/search-providers/?industry%5B%5D=financial_services 我想用这个url替换它,http://localhost/about-fruad-new/search-providers/?financial_services 到目前为止我试过的代码,functio