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