在当前网页显示第三方javascript脚本来源

普遍适用的规则分享、讨论

Moderator: phoenix

Post Reply
User avatar
phoenix
Site Admin
Posts: 529
Joined: Dec 29 2007, 16:27

在当前网页显示第三方javascript脚本来源

Post by phoenix »

现在很多网页广告和追踪代码都使用javascript形式,并通常来源于广告服务商或统计服务商的服务器。

以下规则,会将不来源于当前所访问页面服务器的第三方脚本显示出来,便于我们分析广告之用。请将其置于过滤规则的最后面使用。

Code: Select all

[Patterns]
Name = "Show 3rd party JavaScript [phoenix]"
Active = TRUE
URL = "$TYPE(htm)"
Bounds = "$NEST(<script\s,</script>)"
Limit = 256
Match = "(* src=*http://((^\h|local.ptron)*)\1/*</script>)\2"
Replace = "\2<span style="color: red;">[3rd party JavaScript from \1 ]</span><br>"
          "$SET(script=)"
imsheng
Posts: 37
Joined: Jan 08 2008, 13:24

Re: 在当前网页显示第三方javascript脚本来源

Post by imsheng »

如果我没理解错的话,这个规则的Replace里的"$SET(script=)"应该就是把所有第三方的脚本全部去掉,是吧?

顺便问下,Proxo可以设置超时就自动断开某个连接吗?
User avatar
phoenix
Site Admin
Posts: 529
Joined: Dec 29 2007, 16:27

Re: 在当前网页显示第三方javascript脚本来源

Post by phoenix »

imsheng wrote:如果我没理解错的话,这个规则的Replace里的"$SET(script=)"应该就是把所有第三方的脚本全部去掉,是吧?
"$SET(script=)"是将script变量释放的意思。sidki config set中的一些规则需要用到此变量。如果不搭配sidki config set使用此规则,可以去掉此语句。
imsheng wrote:顺便问下,Proxo可以设置超时就自动断开某个连接吗?
请参考Config设置中的HTTP标签中的“Local connections persist...”设置。
imsheng
Posts: 37
Joined: Jan 08 2008, 13:24

Re: 在当前网页显示第三方javascript脚本来源

Post by imsheng »

我还以为"$SET(script=)"把所有的第三方脚本设置为空,然后等于是去掉了。那有办法直接kill掉第三方脚本吗?我试过加个"\k"在后面,发现原来这是kill掉当前链接的。一般,第三方脚本都是统计或者广告。所以想直接Kill掉。


Proxo超时就自动断开某个连接。看来还得在Opera里设置才行。不然Opera一直挂着连接。又不断开,要手动断开,看见就烦。
User avatar
phoenix
Site Admin
Posts: 529
Joined: Dec 29 2007, 16:27

Re: 在当前网页显示第三方javascript脚本来源

Post by phoenix »

imsheng wrote:那有办法直接kill掉第三方脚本吗?我试过加个"\k"在后面,发现原来这是kill掉当前链接的。一般,第三方脚本都是统计或者广告。所以想直接Kill掉。
Replace处留空就行了。但不分青红皂白把所有第三方脚本去掉并不可取,因为也有些第三方脚本是有用的。

我是另外编了一条通过关键字去除script的规则,这条规则只做提示用,当确认某第三方脚本无用后,再把关键字加到另一条规则的blockfile中过滤。
不夜侯
Posts: 101
Joined: Jul 29 2009, 16:22

Re: 在当前网页显示第三方javascript脚本来源

Post by 不夜侯 »

模仿写了一个去第三方广告脚本的规则,关键字有(php|asp|aspx|service)\?(id|pid|uid|z_uid|siteid|sid)|(inf)的第三方广告脚本,大都是广告联盟平台之类的外投脚本。

Code: Select all

[Patterns]
Name = "kill 3rd party JavaScript 20090910"
Active = TRUE
URL = "$TYPE(htm)"
Bounds = "$NEST(<script\s,</script>)"
Limit = 256
Match = "* (src=$AV((^\h|local.ptron)*((php|asp|aspx|service)\?(id|pid|uid|z_uid|siteid|sid)|(inf))*))\1*"
Replace = "<!--kill 3rd party adjs_\1-->"

Post Reply