0

我有这种情况:IP X 的用户使用 IP Y 访问我的网站。该网站有一个外部 < script > 标签,它从 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 免受用户的侵害,但我的网站可以链接这些文件。

4

1 回答 1

0

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

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

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

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

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

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

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

于 2012-12-14T16:39:28.123 回答