【问题标题】:Can You Hack a Websites Server?你能破解网站服务器吗?
【发布时间】:2026-01-07 23:35:02
【问题描述】:

我对网站漏洞有一个想法,我想知道它是否可能。还有一些关于如何修复它们的建议。

如果我网站的某些部分将数据写入 DOM,然后从中调用数据,那么有人可能通过在浏览器中编辑 DOM 来“破解”服务器吗?

例如,假设我有一些单选按钮。每个按钮都有自己的关联逻辑。如果我删除了其中一个按钮,但未能删除或注释掉逻辑,是否有人可以进入并将其中一个按钮的 DOM 名称编辑为已删除的按钮,并在提交时让服务器执行与已删除相关的逻辑单选按钮?

我了解如何通过删除或注释掉已删除按钮的逻辑来解决这种情况,但我担心我的网站过于依赖可以通过 DOM 操作的此类内容。因此,我想知道:

  1. 这样的事情可能吗?
  2. 一些复杂的验证方法是防止这种性质的“黑客攻击”的唯一方法吗?

【问题讨论】:

  • 你的问题很难理解。你在这里说什么“逻辑”?客户端是否直接控制在服务器上执行的内容,而不进行验证或身份验证?我们是在谈论 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


【解决方案1】:

您的问题的答案是肯定的。例如,在许多浏览器中,您可以打开一个 javascript 控制台,不仅可以更改 DOM,还可以更改网站上的 javascript。

无法保证您为网页编写的代码会在您编写代码时运行。任何用户都可以更改他们的副本。他们不应该做的是改变别人的副本。当他们这样做时,称为跨站点脚本 (XSS) 攻击。 (通常通过将脚本添加到保存在数据库服务器中然后提供给另一个用户的字段来完成。)

为了保护您的网站,您需要确保所有 Web 服务调用都是安全的,即用户不能使用恶意数据调用它们并导致问题。

您还需要阻止 SQL 注入攻击。

没有办法防止用户更改他们机器上的网页并让它做一些你不想要的事情,所以所有的验证都需要在浏览器和服务器上进行。


作为更改本地浏览器行为是多么容易的一个示例,请考虑浏览器扩展。浏览器扩展是一种预先编码的方式来改变网页在本地的行为方式。 (以广告拦截器为例。)

【讨论】:

  • 只是为了添加...您甚至可以忘记人们在浏览器中的任何烦恼。当 Web 服务调用通常是完全开放的并且可通过简单的 cURL 进行利用时,无需为此烦恼。永远不要相信用户的任何东西。