最近我注意到 htaccess 文件中的多个位置都添加了新行。
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/(?:\ Ballot169)?
我不明白它是做什么的,如果可能的话我希望澄清它的用途。
下面的例子显示了其出现的方式。
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/cpanel-dcv/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/(?:\ Ballot169)?
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/cpanel-dcv/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/(?:\ Ballot169)?
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
先感谢您。
答案1
这实际上不是一个完整的答案,因为我无法具体评论它如何/在何处Ballot169
融入更大的计划。但是,我可以评论“它的作用”。不过,这确实看起来有点奇怪……
一般来说,这些RewriteCond
指令用于创建例外这样当 SSL 证书自动续订时,就可以不受阻碍地访问必要的验证文件。请参阅我的答案有关更多信息,请参阅以下 ServerFault 问题:
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/(?:\ Ballot169)?
由于正则表达式的最后一部分(?:\ Ballot169)?
是完全可选的,并且没有尾随的字符串结尾锚点(即$
),因此检查的最后一部分Ballot169
完全是多余的,可以删除!(这“看起来”是正则表达式的一个错误,除非它是试图在代码中注入注释/可跟踪的标记?)因此,这与简单地相同:
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/
换句话说,它正在检查 URL 路径是否不以 开头/.well-known/pki-validation/
。
因此,这使得沿相同 URL 路径检查“Comodo”的前述条件变得多余。
在谷歌搜索中,这个特定的指令确实出现在其他地方,例如这个 StackOverflow 问题从 2019 年 1 月起。
“Ballot 169”似乎指的是这个:
- 投票 169 – 修订的验证要求(2017 年 3 月 1 日起生效)
答案2
@MrWhite 我很感谢您对如何回应、添加更多背景信息等方面的指导,并且根据您的建议,我正在回答我的问题,以便您可以添加您的评论,谢谢。
<:>:<:>:<:>:<:>:<:>:<:>:<:>:<:>:<:>:<:>:<:>:<:>
在您回答之后,我联系了托管公司,代表一开始只说这是 SSL 证书的一部分,我一直问他它的用途和功能是什么,他唯一说的是“这一切都与证书的安装方式有关”,当我继续催促时,他收回了那条评论,说这并不重要。
您分解指令的方式以及它对我的作用,以及您链接的另一个答案中所说的“其他人已将这组特定规则标记为某种 DDOS 保护”,让我陷入思考,因此我搜索了“知名黑客”,结果如下:
https://www.zscaler.com/blogs/research/abuse-hidden-well-known-directory-https-sites
因此,您的分析使我认为该行通过阻止或重定向此类请求来保护证书和可能的目录,如果我错了,请纠正我。
我再次感到好奇,开始下载访问日志并在其中搜索“众所周知”的条目,说实话,我不知道这些条目是否常见(就像一直在那里一样,但我从未关注过它们)或者不常见,这就是我发现的。
- 二月份,访问日志中总共有 280 条条目与下面这一行类似,/acme-challenge/ 后面的数字串全部不同,并且大多数指向来自 Cloudflare 的 IP 地址(该网站使用 Cloudflare,所以我不确定这是否值得提及)。
“GET /.well-known/acme-challenge/Z152-H592V1UDY0PWBCKU3GEO5L6-3DQ HTTP/1.1” 200 64 “-” “Cpanel-HTTP-Client/1.0”
3 月份没有任何条目,但从 4 月份开始它们又开始出现,这也与新行的添加相吻合,到目前为止,“知名”条目约为 145 条。
值得注意的是,这个特定的网站使用的是 Cloudflare 的免费 SSL,而不是 Let's Encrypt 的 SSL
最后但同样重要的一点是,从我可以访问的 3 个不同帐户来看,并且使用同一个托管公司,只有其中 1 个帐户的 .htaccess 文件中添加了该行。
怀特先生,一如既往地感谢您的见解,如果我确实发现任何其他信息,我会在这里发布。