我的注入JavaScript可以被网站作者看到吗?

时间:2012-09-18 11:16:07

标签: javascript security opera-extension

假设我想弄乱特定网站并在那里注入一些与页面交互的功能。然后网站管理员可以检查窗口对象是否只有他定义的功能,如果有差异通过ajax回到他的服务器,那么实际上我的代码可以通过这种方式被窃取/查看吗?

2 个答案:

答案 0 :(得分:2)

如果您在网站的全局上下文中注入代码,该网站可以使用JavaScript来检测此问题,并且通过在函数上使用.toString(),获取注入函数的源代码。

然而,这是不太可能的,你总是可以将你的大部分代码放入一个匿名的自执行函数中,该函数在注册事件等时只使用代理函数,然后调用你的实际逻辑 - 而这些函数在外部无法访问匿名关闭。

(function() {
    function doCrazyStuff() { /* OMG THIS IS TOP SEKRET! */ }
    function crazyStuffProxy() { doCrazyStuff(); }
    window.onload = crazyStuffProxy;
});

现在有权访问window的人可以获得crazyStuffProxy的代码,但无法访问doCrazyStuff

当然,这仅适用于您未使用<script>标记注入所有代码的情况。但是,既然你标记了你的问题,你的代码可能会在不同的上下文中运行,除了你实际添加到窗口或DOM元素的代码,这应该不是问题......

答案 1 :(得分:0)

这取决于。我可以写一些非常贪婪的东西,然后检测出发生的事情并将其发送出去。这需要大量的工作来检测所有这些。

不太可能。