页面的访问者是否可以从浏览器运行该页面的 javascript 中指定的任意函数?
举个简单的例子,如果页面具有在单击按钮时隐藏特定元素的功能,访问者是否可以在不单击按钮的情况下触发该功能并隐藏元素,而是通过以某种方式直接调用该功能?
页面的访问者是否可以从浏览器运行该页面的 javascript 中指定的任意函数?
举个简单的例子,如果页面具有在单击按钮时隐藏特定元素的功能,访问者是否可以在不单击按钮的情况下触发该功能并隐藏元素,而是通过以某种方式直接调用该功能?
是的,用户可以完全控制 DOM。但是,可以通过使用闭包来减少可以访问的内容。例如,如果我有:
(function() {
var myvar = "can't touch me!";
// do stuff with myvar
})();
那么用户就无法获取或更改字符串。对于函数也是如此,除非您将它们设为全局变量(或将它们附加到window
对象)。任何附加到 DOM 的属性也是可访问的,例如onclick
元素的属性。但是,如果您使用该addEventListener
方法,那么我认为没有任何方法可以找到它。
总的来说,浏览器是不可信的。
我相信安全预防措施通常可以防止这种情况发生。
您可以使用调试控制台。在 Chrome 中,打开开发者工具,打开控制台,然后输入命令。
如果你使用 jQuery,你可以这样做
$('#id').click();
这是我认为最简单的方法