首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.htaccess setenvif referer阻止IE6/7/8,使用IE9/FF/Chrome/Safari?

问.htaccess setenvif referer阻止IE6/7/8,使用IE9/FF/Chrome/Safari?
EN

Stack Overflow用户
提问于 2011-12-22 02:36:22
回答 1查看 1.2K关注 0票数 0

我有一个令人沮丧的问题,我在htaccess中使用一个简单的SetEnvIf Referer方法来限制一个web应用程序的流量,而htaccess错误地阻止了来自一个“允许”站点的合格的IE6/7/8流量。

火狐、Chrome、Safari和IE9都没有问题。

有允许的域:

1)流量来自与应用相同的域

2)来自我们客户网站的流量

3) cnn.com *,用于测试另一个第三方。

对于CNN.com,我使用浏览器工具将屏幕上链接的目标替换为一个新目标:我的web应用程序地址。

我发现了以下内容:

根据.htaccess规则,内部通信正常工作

CNN.com流量工作

来自客户站点的流量在IE6/7/8 (9: works)中不起作用

我还构建了一个简单的php脚本来打印$_SERVER中的HTTP_REFERER。我正在使用同样的浏览器工具方法,在第三方页面上插入链接,点击它们,然后在我的测试页面上查找结果。我发现:

所有浏览器中的内部交通报告都正确无误

cnn.com流量报告可在所有浏览器中正常运行

第三方/客户网站无法通过IE(8)发送推荐人。IE9起作用了。

.htaccess:

代码语言:javascript
复制
SetEnvIf Referer samedomain\.com intra_site_referral=1
SetEnvIf Referer addressthatdoesntwork\.org intra_site_referral=1
SetEnvIf Referer another3rdpartyaddressthatworks\.org intra_site_referral=1
#SetEnvIfNoCase Referer "^$" intra_site_referral=0
<FilesMatch "\.(html|js|css|jpg)$">
  Order Allow,Deny
  Allow from env=intra_site_referral
</FilesMatch>

ErrorDocument 403 /restricted.html

我的问题:

我是否穷尽了我这一端所有可能的错误?

我是否可以得出结论,客户的网站/服务器报告推荐人有问题?

在你告诉我htaccess引用是不安全的,引用可以被伪造之前:这种保护方法并不重要。在某种程度上,它的目的只是将应用程序的受众限制为内部团队和我们客户的受众。

感谢你的阅读..

EN

回答 1

Stack Overflow用户

发布于 2011-12-23 03:41:23

尝试像这样使用mod_rewrite:

代码语言:javascript
复制
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !samedomain\.com [NC]
RewriteCond %{HTTP_REFERER} !addressthatdoesntwork\.org [NC]
RewriteCond %{HTTP_REFERER} !another3rdpartyaddressthatworks\.org [NC]
RewriteRule \.(html|js|css|jpg)$  - [F]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8594661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档