假设我想弄乱特定网站并在那里注入一些与页面交互的功能。然后网站管理员可以检查窗口对象是否只有他定义的功能,如果有差异通过ajax回到他的服务器,那么实际上我的代码可以通过这种方式被窃取/查看吗?
答案 0 :(得分:2)
如果您在网站的全局上下文中注入代码,该网站可以使用JavaScript来检测此问题,并且通过在函数上使用.toString()
,获取注入函数的源代码。
然而,这是不太可能的,你总是可以将你的大部分代码放入一个匿名的自执行函数中,该函数在注册事件等时只使用代理函数,然后调用你的实际逻辑 - 而这些函数在外部无法访问匿名关闭。
(function() {
function doCrazyStuff() { /* OMG THIS IS TOP SEKRET! */ }
function crazyStuffProxy() { doCrazyStuff(); }
window.onload = crazyStuffProxy;
});
现在有权访问window
的人可以获得crazyStuffProxy
的代码,但无法访问doCrazyStuff
。
当然,这仅适用于您未使用<script>
标记注入所有代码的情况。但是,既然你标记了你的问题opera-extension,你的代码可能会在不同的上下文中运行,除了你实际添加到窗口或DOM元素的代码,这应该不是问题......
答案 1 :(得分:0)
这取决于。我可以写一些非常贪婪的东西,然后检测出发生的事情并将其发送出去。这需要大量的工作来检测所有这些。
不太可能。