我们如何知道我们的服务器是否完美地给出了 403 禁止错误?我想知道,因为我使用了用于阻止引荐网站和垃圾邮件机器人的 .htaccess 文件的代码。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_REFERER} domain1\.com [NC,OR]
RewriteCond %{HTTP_REFERER} domain2\.com [NC,OR]
RewriteCond %{HTTP_REFERER} domain3\.com [NC]
RewriteRule ^(.*)$ - [F,L]
</IfModule>
我使用该代码阻止了一个网站,但是当我访问该网站并单击我的网站链接时,我的网站对我来说可以正常打开。由于引荐网站在 .htaccess 文件中列出,我不应该收到 403 禁止页面吗?
如何检查我的网站是否支持 403 禁止页面?代码是否正确?
对于正常的链接,在正常情况下,是的。您会期望该请求被阻止。
Referer
但是,使用(HTTP 请求标头)进行阻止是不可靠的。Referer
标头。Referer
。事实上,在 HTML5 中,您只需要rel="noreferrer"
在锚点上设置(两个 r 的)属性,以防止浏览器发送Referer
标头(Referrer Policy 的一部分)。Referer
来自网站的所有链接上的所有标题。(注意,有时是“Referer”(1 r),有时是“Referrer”(2 r)。)
参考:
https ://stackoverflow.com/questions/5033300/stop-link-from-sending-referrer-to-destination
有很多方法可以伪造请求。例如,您可以使用 Postman ( https://www.getpostman.com/postman ),或者使用 curl 或 request 之类的库。
在您的情况下,您只需更改标头中的 Referer 字段。