我正在尝试使用 Douglas Crockford 的 ADsafe图书馆。
我认为它应该限制可以使用的 JavaScript,但它似乎让危险的调用通过,例如 eval()
。
这是一个不限制任何内容的沙箱示例:
<html>
<head>
<title>ADsafe Widget Template</title>
</head>
<body>
<script src="adsafe.js"></script>
<div id="WIDGET_">
<script>
ADSAFE.go("WIDGET_", function (dom, lib) {
"use strict";
//
// ADsafe is allowing these to execute!!
//
window.alert("window.alert is working :(");
eval('window.alert("hello from eval")');
window.location = "http://www.google.com";
});
</script>
</div>
</body>
</html>
有人知道 ADsafe 沙箱是如何工作的吗?
最佳答案
据我所知,ADsafe 实际上不会检查您的代码是否存在这些违规行为。您应该使用 JSLint启用 ADsafe 选项后,在使用之前解析任何不受信任的 JavaScript 并验证是否存在 ADsafe 违规。
如有错误,请大家指正。
关于javascript - 无法让简单的 ADsafe 小部件工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7162379/