【发布时间】:2026-01-07 23:35:02
【问题描述】:
我对网站漏洞有一个想法,我想知道它是否可能。还有一些关于如何修复它们的建议。
如果我网站的某些部分将数据写入 DOM,然后从中调用数据,那么有人可能通过在浏览器中编辑 DOM 来“破解”服务器吗?
例如,假设我有一些单选按钮。每个按钮都有自己的关联逻辑。如果我删除了其中一个按钮,但未能删除或注释掉逻辑,是否有人可以进入并将其中一个按钮的 DOM 名称编辑为已删除的按钮,并在提交时让服务器执行与已删除相关的逻辑单选按钮?
我了解如何通过删除或注释掉已删除按钮的逻辑来解决这种情况,但我担心我的网站过于依赖可以通过 DOM 操作的此类内容。因此,我想知道:
- 这样的事情可能吗?
- 一些复杂的验证方法是防止这种性质的“黑客攻击”的唯一方法吗?
【问题讨论】:
-
你的问题很难理解。你在这里说什么“逻辑”?客户端是否直接控制在服务器上执行的内容,而不进行验证或身份验证?我们是在谈论 Javascript 还是服务器端代码?
-
这是 PHP 编码逻辑。对某些事情进行验证,但在某些情况下,例如单选按钮,确实没有。我真的只是想知道是否可以通过 DOM 操作进行这种“黑客攻击”,以及我是否应该花时间试图防止这种情况(因为如果不可能,我不明白为什么我应该浪费时间)
-
当然。 “黑客”总是有风险的。但是,如果没有更详细的信息,就不会有更多的答案。霍根的回答可能会有所帮助。
-
好吧,更详细,让我们看看...
<input id="d" class="checkbox" type="radio" value="D" name="a"></input> <input id="s" class="checkbox" type="radio" value="S" name="a"></input>两个单选按钮。现在,如果我删除值“S”单选按钮,但未能删除与其关联的逻辑,或验证表单不接受“S”作为有效值,有人可以编辑 DOM,将其更改为“S”和然后运行与“S”相关的逻辑?我认为这是可能的,我应该在编码时考虑到这一点? -
正如我在回答中所说,他们不仅可以像 S 那样编辑 DOM,而且如果您的服务器端代码没有验证,他们可以构造一个带有 S 值的服务器请求——即使没有本地代码或 DOM 编辑您的网站或网络服务存在风险。
标签: dom dom-manipulation