1

页面的访问者是否可以从浏览器运行该页面的 javascript 中指定的任意函数?

举个简单的例子,如果页面具有在单击按钮时隐藏特定元素的功能,访问者是否可以在不单击按钮的情况下触发该功能并隐藏元素,而是通过以某种方式直接调用该功能?

4

3 回答 3

3

是的,用户可以完全控制 DOM。但是,可以通过使用闭包来减少可以访问的内容。例如,如果我有:

(function() {
    var myvar = "can't touch me!";
    // do stuff with myvar
})();

那么用户就无法获取或更改字符串。对于函数也是如此,除非您将它们设为全局变量(或将它们附加到window对象)。任何附加到 DOM 的属性也是可访问的,例如onclick元素的属性。但是,如果您使用该addEventListener方法,那么我认为没有任何方法可以找到它。

总的来说,浏览器是不可信的。

于 2012-10-16T23:38:09.810 回答
0

我相信安全预防措施通常可以防止这种情况发生。

您可以使用调试控制台。在 Chrome 中,打开开发者工具,打开控制台,然后输入命令。

于 2012-10-16T23:38:50.650 回答
-3

如果你使用 jQuery,你可以这样做

$('#id').click();

这是我认为最简单的方法

于 2012-10-16T23:33:39.390 回答