- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想知道是否有可能在创建 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 还是提高了标准。
接受网页可以合法更改或因干扰而更改的事实在执行环境中运行的东西,让我们(和我的研发)去下一个层次:关于 DOM 篡改的实时知识和能力区分“自作自受”和恶意/意外篡改。
我的研发已经更进了一步,我很乐意与你分享,但是在侧 channel 上,因为在此线程上下文中可能会被错误地感知。
关于javascript - 防止DOM篡改和修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38551184/
大家好,我是沙漠尽头的狼。 本文首发于 Dotnet9 ,介绍使用 Lib.Harmony 库拦截第三方 .NET 库方法,达到不修改其源码并能实现修改方法逻辑、预期行为的效果,并
我有Helm Applciations使用 Terraform 的 helm_release 资源与 Terraform 一起部署。 有时由于以下一个或多个原因,我的 Kubernetes Pod 将
我有Helm Applciations使用 Terraform 的 helm_release 资源与 Terraform 一起部署。 有时由于以下一个或多个原因,我的 Kubernetes Pod 将
我们开发了一个 Javascript 文件供客户使用。 Javascript 片段对其运行的网站进行屏幕截图,然后通过 jQuery.post() 将其发送回我们的服务器 我们行业的性质意味着我们必须
我在本地主机上运行我的测试站点。 当我用 URL 加载它时: localhost/projects/forums/index.php 它看起来像这样(符合预期) 但是当 我给 URL: localho
我正在 中共同开发一个简单的网络应用程序 rails 3.0.9 我已经意识到可能通过恶意请求篡改 session_id。请注意,这是我的第一个 RoR 应用程序,所以我的概念可能完全错误。 当前的应
我返回了以下 JSON 数据,但由于某种原因,Javascript 或 jQuery ajax 似乎重新组织了项目列表。服务器返回按item.title字母顺序排序的数据(已验证)... 下面的 JS
背景 我是一名经验丰富的 Web 开发人员(主要使用 Python 和 CherryPy),之前从头开始实现过安全 session 管理,现在正在学习 Rails。我正在调查 session 暴露的
我正在使用 MVC3、.NET4.5、C#、Razor。 我在 Codeproject 之外重用了 Albin 的一些非常有用的代码,通过添加哈希来防止 URL 篡改。主要运行良好。 然而…… 我现在
我是一名优秀的程序员,十分优秀!