从浏览器在远程页面上执行javascript函数

时间:2012-10-16 23:31:54

标签: javascript browser

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

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

3 个答案:

答案 0 :(得分:3)

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

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

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

总体而言,浏览器无法信任。

答案 1 :(得分:0)

我认为安全预防措施通常会阻止这种情况。

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

答案 2 :(得分:-3)

如果你正在使用jQuery,你可以

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

这是最简单的方法我认为