gpt4 book ai didi

javascript - 防止DOM篡改和修改

转载 作者:行者123 更新时间:2023-12-05 07:48:29 25 4
gpt4 key购买 nike

我想知道是否有可能在创建 DOM 后以某种方式“锁定”它并确保 JavaScript 无法进一步修改它。

目的是保持网页的完整性。

我相信这是不可能的,但仍然希望有人有一个有趣的想法。

最佳答案

@Stu 已经说过的简短回答:不,这是不可能的。

让我们先声明免责声明:我在过去 3 年一直在研究关于基于 DOM 的攻击,例如称为浏览器中人 (MitB) 的攻击,已有多年的历史。我从事研发工作的公司专注于 Web 应用程序的完整性。

因为你不能“锁定”DOM,你能做的最好的事情就是限制可以访问并更改它:正如@CBroes 所说,您可以从 Content Security Policy (CSP) 开始这样你的服务器就可以指示浏览器允许哪些脚本/样式源。

CSP 的目的可以被任何可以剥离 HTTP header 或 meta 的东西打败浏览器解析之前来自 HTTP 响应的标记,例如MitB 木马。

Subresources Integrity (SRI)允许你告诉浏览器“嘿,我想要这个资源当且仅当它的当前哈希匹配这个。你应该提供您使用 integrity 属性知道的散列。这特别好,如果您正在从 CDN 等远程位置加载资源:如果他们得到遭到破坏并且您正在加载的脚本添加了恶意负载,您的应用程序将受到破坏。

至于 CSP,例如 MitB 木马将能够剥离这些属性在浏览器解析之前,尽管如此,使用 SRI 还是提高了标准。

接受网页可以合法更改或因干扰而更改的事实在执行环境中运行的东西,让我们(和我的研发)去下一个层次:关于 D​​OM 篡改的实时知识和能力区分“自作自受”和恶意/意外篡改。

我的研发已经更进了一步,我很乐意与你分享,但是在侧 channel 上,因为在此线程上下文中可能会被错误地感知。

关于javascript - 防止DOM篡改和修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38551184/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com