无法通过Google搜索找到答案。所以我来到这里。
一周前我有一个想法,关于一些潜在的漏洞,并想询问是否可能,以及是否有任何关于如何修复它们的建议。
这个想法很简单:如果我的网站的某些部分(或其中的许多部分)将数据写入DOM然后从中调回数据,那么有人可能通过编辑来“破解”服务器浏览器中的DOM?
示例:假设我有几个单选按钮。每个按钮都有自己的逻辑关联。如果我删除其中一个按钮,但无法删除或注释逻辑,有人可以进入并编辑其中一个按钮的DOM名称到已删除的按钮,并在提交时让服务器执行与删除的无线电相关联的逻辑按钮?
我理解如何通过删除或评论删除按钮的逻辑来解决这种情况,但我担心我的网站过于依赖于可以通过DOM操纵的事情,我只是想知道......
答案 0 :(得分:2)
你的问题的答案是肯定的。例如,在许多浏览器中,您可以打开一个javascript控制台,不仅可以更改DOM,还可以更改网站上的javascript。
无法保证您为网页编写的代码会在您编写代码时运行。任何用户都可以更改其副本。他们不应该做的是改变别人的副本。当他们这样做时,这被称为跨站点脚本(XSS)攻击。 (通常通过将脚本添加到保存在数据库服务器中然后提供给其他用户的字段来完成。)
为了保护您的站点,您需要确保所有Web服务调用都是安全的 - 即用户无法使用恶意数据调用它们并导致问题。
您还需要阻止SQL注入攻击。
没有办法防止用户更改其计算机上的网页并让其执行您不想要的操作,因此所有验证都需要在浏览器和服务器上进行。
作为更改本地浏览器行为的简单示例,请考虑浏览器扩展。浏览器扩展是一种预编码方式,用于更改网页在本地的行为方式。 (想想广告拦截器作为一个具体的例子。)