2012-10-16 44 views
1

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

举一个简单的例子,如果页面有一个函数来隐藏一个特定的元素,当一个按钮被点击时,访问者是否可以触发该函数并隐藏该元素而不点击按钮,但通过直接调用该函数?

+1

可以通过Chrome的控制台(大多数浏览器都有)。用户可以输入全局'window'中可用的任何函数,并执行。 (如果你担心安全问题)。 – JCOC611

回答

3

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

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

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

总的来说,浏览器不能被信任。

-3

如果你使用jQuery,你可以做

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

这是做到这一点的最简单的方法,我认为

+0

你怎么能错过这个问题的重点? –

+0

好吧,我们都会犯错误。此外,这不是写出'function(){做这个}'和调用?你必须以某种方式调用一个函数,或者写出来或“点击”不应该有太大的区别。 – romo

+1

不是吗?你的问题对我来说没有意义......是的,我们确实犯了错误,但我至少尝试阅读所有的问题,而不是只用一行jQuery跳出来。 jQuery不是一切的答案。 42是。 –

0

我相信安全防范措施通常会防止这种情况发生。

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

相关问题