Apache RewriteCond HTTP_Referer 是否可以防止引荐来源欺骗?

Is Apache's RewriteCond HTTP_Referer secure against referer spoofing?

在 Apache 中 RewriteCond HTTP_Referer 是否可以安全地阻止直接访问私有(受密码保护,而不是通过 Apache mod_auth)HTML 页面中包含的脚本或数据?

或者有人可以使用 Referer 欺骗来访问脚本和数据吗?

示例:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https?.(www\.)?mydomain.com/.*$ [NC]
RewriteRule \.(txt|js|pdf)$

您的重写条件检查 HTTP 客户端 header (Referer)。 因此 user/attacker 可以完全自由地向您发送她想要的任何值,也就是。她可以恶搞 header.

因此,对于经过身份验证的会话(您提到 password-protected 区域)来说,它是不安全的!

它只有助于防止其他网站盗链您的资源,因此 "stealing" 您的流量。但即使在这种情况下,您也应该考虑不利因素,例如您的网站会因 spoof/remove 引荐来源的人而中断,例如由于隐私问题。