1
16
实现代码块完全隔离和封装的最佳方法是将其放入iframe中,并将其放到站点的子域中,这样外部HTML页的域名就不会与内部HTML页相同。在iframe中,javascript将只看到iframe url的dom,并且不能访问外部dom。此隔离由浏览器安全模型强制执行。 这种技术的另一个好处是,您可以高度自信,在iframe中运行的脚本不会泄漏并从外部页面窃取数据。这种隔离也是缺点——在外部页面和内部页面之间共享数据比较困难。为了在iframe和外部页面之间提供对数据的控制访问或共享,您可以研究各种跨域数据共享技术。如果只需要在iframe内部页面上抛出参数“at”,那么可以将URL上的数据作为查询参数传递。如果您需要双向数据交换,您可以使用域降低技术将域名简单地排列起来,这样浏览器就可以在外部和内部页面之间进行数据交换。 既然您建议在输入控件中输入eval()任意代码,那么您肯定应该保护您的主页逻辑免受潜在的黑客攻击。使用iFrAME。 |
2
5
一种方法是用匿名函数封装所有需要保护的代码,并用类似的对象传递所有环境参数,但修改后不允许全局DOM操作,例如
现在,我们可能会想到一个问题,我们如何修改文档对象?也许一个围裙
自调用匿名函数允许我们防止全局变量冲突,它在许多著名的库(如jquery)中使用。 为了能够应用此方法,首先必须确定所有可能的方法,脚本如何尝试读取或写入全局DOM对象。我不能给你完整的解决方案,因为使用这个方法显然是一个项目可能会消耗我整个星期,但这可能会照亮你的道路! |
3
0
这是来自 jQuery selectors 文档。这有帮助吗?
|
4
0
默认情况下,jquery基于
|
5
0
从理论上讲,控制JS执行环境在某种程度上是可能的(甚至可能实际上是可能的),您可以对脚本进行沙盒处理。然而,这是非常,非常涉及这样做。这是一项非常艰巨的工作,建议在任何情况下都使用iframe。 如果由于某种原因,iframes确实无法解决问题,您可以尝试查看caja项目: http://code.google.com/p/google-caja/ 我自己也没用过卡贾,但听起来它可以满足你的需要。不过,您可能需要支付一些严重的复杂性成本。iframe基本上是Web体系结构对您的用例的回答,而大多数其他解决方案将类似于复杂而复杂的黑客攻击。 |
6
0
很久以前就有人问过这个问题,但是最近我偶然发现了它,因为我有一个类似的情况,我需要嵌入第三方内容,包括javascript。 我遇到一个叫caja的谷歌项目( https://developers.google.com/caja/ )用他们自己的话来说:
我还没有用过,但计划很快试用一下。 |
Farid · 限制django每个客户的访问 2 年前 |
josegp · 在Nmap中-p-tag是什么意思 2 年前 |
kramer65 · 如何根据网站用户在S3上添加非公共网站文件? 6 年前 |
derf26 · 如何阻止React Web包包含包中的脚本。json 6 年前 |
user8663960 · 最好也是最简单的方法是保护登录表单的安全 6 年前 |