ADsafe怎么不拦截广告

ADsafe是一种用于Web浏览器的JavaScript子集,旨在提供更高的安全性。然而,最近发现ADsafe并没有完全拦截广告,这引起了人们的关注和质疑。本文将深入探讨ADsafe的设计及其限制,并讨论为什么ADsafe未能完全拦截广告的原因。

ADsafe是什么?

ADsafe是由Douglas Crockford于2008年开发的JavaScript子集。它是为了提高JavaScript代码的安全性而设计的。

ADsafe的设计原则

ADsafe的设计基于几个原则:

ADsafe怎么不拦截广告

JavaScript的语言特性很危险,并具有很多巧妙的攻击手段

JavaScript开发者经常犯错误,这些错误可能会导致安全漏洞

对于某些不需要使用JavaScript的网站,禁用JavaScript可以提高安全性

ADsafe如何实现安全?

ADsafe实现安全的主要方式是用一组强制规则来限制JavaScript的语言特性。这些规则包括:

不允许使用eval()

不允许使用with语句

不允许使用Function()构造函数

不允许使用this、prototype和arguments

只允许使用安全类型的对象、属性和方法

为什么ADsafe不能完全拦截广告?

尽管ADsafe的规则非常严格,但它并不能完全拦截广告。这是因为广告商使用各种技巧来绕过ADsafe的规则。

技巧1:通过字符串拼接来绕过ADsafe的规则

ADsafe禁止使用Function()构造函数,但广告商可以使用字符串拼接来动态创建函数,并在执行时将其转换为JavaScript代码。这使得广告内容可以通过字符串拼接来绕过ADsafe的规则。

技巧2:通过JSONP来绕过ADsafe的规则

ADsafe不能禁止跨域访问,因为跨域访问是Web应用程序的一个重要功能。广告商可以通过JSONP技术来绕过ADsafe的规则。JSONP是一种通过动态创建