我收到用户报告说我的两个网站已损坏。似乎在每种情况下他们都在运行 adblock plus。从我得到的报告来看,Javascript 似乎没有运行。
这是在黑暗中刺伤,但是(也许不幸的是)我的 servlet 都是从一个包含“应用程序目录”的“/ad/”的 URL 运行的,例如。
http://www.example.com/ad/b
有人知道这是否是 adblock 用来做它的那种大锤吗?
我收到用户报告说我的两个网站已损坏。似乎在每种情况下他们都在运行 adblock plus。从我得到的报告来看,Javascript 似乎没有运行。
这是在黑暗中刺伤,但是(也许不幸的是)我的 servlet 都是从一个包含“应用程序目录”的“/ad/”的 URL 运行的,例如。
http://www.example.com/ad/b
有人知道这是否是 adblock 用来做它的那种大锤吗?
AdBlock 使用称为“过滤器”的东西来任意阻止 http 请求。这些过滤器中的一些/全部(谁知道)在此处定义https://easylist.adblockplus.org/en/
我没有详细浏览它们,但快速扫描显示一个带有“/ad/”的数字,我的许多(非广告)网址也是如此。
实际上,如果您使用 adblock,4shared 也会发生这种情况,当您转到下载页面时,页面变为静态,即任何点击均无响应
广告拦截器的工作原理
广告拦截器是依赖预定义过滤器列表来识别和删除广告的内容过滤器。它们的工作原理是编译与广告相关的表达式列表,并使用模式匹配将这些表达式与用户浏览器发出的请求进行比较。
广告拦截器也可能会拦截跟踪脚本,从而阻止第三方广告网络通过发布商的网站向用户的浏览器投放广告。“在呈现页面之前,Adblock Plus 会对其进行修改,剥离对广告服务或跟踪脚本的请求,并注入 CSS 来修复网站,使其看起来不会损坏,”Adblock Plus 总裁 Till Faida 说。
可以把它想象成通过手术去除广告,然后封闭孔。对用户来说,没有证据表明曾经存在过广告。
由于它们会中断与第三方广告网络的通信,因此诸如 Disconnect 之类的专用跟踪拦截器也会阻止来自这些来源的广告。Disconnect 通过检查任何传出浏览器请求的主机名并阻止对与跟踪用户在 Web 上的活动的广告网络相关联的主机的请求来实现此目的。但其目的是阻止跟踪,而不是广告,联合首席执行官 Casey Oppenheim 表示,这些工具仍然允许发布商制作的“第一方”广告通过。
Adblock 是做什么的,Adblock Plus 0.5/0.6 是做什么的?他们都使用了简单的算法:
function getMatchingFilter1(S, F)
for each filter in F
if (filter matches S)
return filter
end if
end for
return null
end function
所以你的字符串 S 匹配过滤器,这就是导致错误的原因。