拒绝访问我的广告服务器给第三方

时间:2012-12-14 16:21:15

标签: .htaccess access-denied adserver

我遇到这种情况: 具有IP X的用户使用IP Y访问我的网站。该网站具有外部<脚本>标记,从AdServer Z(< script src = Z / script.js />)获取信息并显示广告。

现在,我想阻止X直接访问Z / script.js,但当用户访问网站时,它会显示广告。

我尝试使用.htaccess执行此操作:

Order allow,deny
Allow from Y
Deny from all

但它没有显示广告,我无法直接访问该文件。

但是当我这样做时:

Order allow,deny
Allow from X
Deny from all

网站显示广告,我可以直接访问该文件。

我认为Z上的Apache会收到Y作为IP但显然正在接收X. 为什么是这样? 我该怎么做才能保护Z免受用户侵害,但我的网站可以链接这些文件。

1 个答案:

答案 0 :(得分:0)

您直接链接到广告服务器,而不是代理。这意味着当有人从您的网络服务器加载页面,并且浏览器呈现<script src=ADSERVER/script.js>时,浏览器会直接向ADSERVER发送请求。除非您更改网址,否则您无法对浏览器而非加载此资源。

您可以将URL更改为指向服务器上的URL,并对其进行代理。例如,假设您将网址从http://ADSERVER/script.js更改为/adserver/script.js

您可以使用ProxyPass(仅在vhost或服务器配置中)执行此操作:

    ProxyPass /adserver/script.js http://ADSERVER/script.js

或mod_rewrite(在htaccess,server或vhost config中,但必须加载mod_proxy):

    RewriteEngine On
    RewriteRule ^/?adserver/script.js http://ADSERVER/script.js [L,P]

然后在广告服务器上,只允许从Y(您的网络服务器)访问。