浏览器的页面访问者是否可以从浏览器中运行该页面的javascript中指定的任意函数?在浏览器的远程页面上执行javascript函数
举一个简单的例子,如果页面有一个函数来隐藏一个特定的元素,当一个按钮被点击时,访问者是否可以触发该函数并隐藏该元素而不点击按钮,但通过直接调用该函数?
浏览器的页面访问者是否可以从浏览器中运行该页面的javascript中指定的任意函数?在浏览器的远程页面上执行javascript函数
举一个简单的例子,如果页面有一个函数来隐藏一个特定的元素,当一个按钮被点击时,访问者是否可以触发该函数并隐藏该元素而不点击按钮,但通过直接调用该函数?
是,用户具有DOM的完全控制。但是,可以减少使用闭包可以访问的内容。例如,如果我有:
(function() {
var myvar = "can't touch me!";
// do stuff with myvar
})();
然后,用户无法获取或更改字符串。同样,对于函数,除非将它们设为全局变量(或将它们附加到window
对象)。附加到DOM的任何属性也可以访问,例如元素的onclick
属性。但是,如果您使用addEventListener
方法,那么我不认为有任何方法可以找到它。
总的来说,浏览器不能被信任。
如果你使用jQuery,你可以做
$('#id').click();
这是做到这一点的最简单的方法,我认为
你怎么能错过这个问题的重点? –
好吧,我们都会犯错误。此外,这不是写出'function(){做这个}'和调用?你必须以某种方式调用一个函数,或者写出来或“点击”不应该有太大的区别。 – romo
不是吗?你的问题对我来说没有意义......是的,我们确实犯了错误,但我至少尝试阅读所有的问题,而不是只用一行jQuery跳出来。 jQuery不是一切的答案。 42是。 –
我相信安全防范措施通常会防止这种情况发生。
您可以使用调试控制台。在Chrome中,打开开发人员工具,打开控制台,然后键入命令。
可以通过Chrome的控制台(大多数浏览器都有)。用户可以输入全局'window'中可用的任何函数,并执行。 (如果你担心安全问题)。 – JCOC611