【问题标题】:I want to know if someone can manipulate my HTML code with inspect element?我想知道是否有人可以使用检查元素操作我的 HTML 代码?
【发布时间】:2020-04-29 23:19:15
【问题描述】:

我想知道我游戏中的用户是否可以通过检查元素操作此代码。特别是礼品店,我将不胜感激。

How Many <select class="areatestsmall" name="amount">
<option value="1">1</option>

Here is the HTML code

【问题讨论】:

  • 是的,有人可以
  • 是的,他们可以。甚至可以在完全不使用浏览器的情况下发出 HTTP 请求并将数据发送到您的 PHP 脚本(例如,使用 PostMan 等工具或任何其他 HTTP 客户端)。因此,您的服务器端代码需要以验证所有传入输入(例如查询字符串值、提交的表单数据)的方式编写,以检查它是否有意义。 (再次作为示例,完整性检查可以包括“此值是否为有效日期”或“当前用户是否允许选择该选项”)
  • 你能告诉我如何通过屏幕共享吗?
  • 无需屏幕共享。这些工具在网上有大量记录。在大多数浏览器上,您可以按 F12 打开开发者工具。或者通常有一个菜单选项。或者您可以右键单击页面上的特定区域,然后从上下文菜单中单击“检查”。然后在开发人员工具的“元素”部分,您可以单击/右键单击元素以编辑其内容,或在页面中添加/删除项目。或者有人可以通过控制台提交 JavaScript,这可能会更改页面内容。结论:您的服务器端代码必须从不来自客户端的任何信任输入
  • HTML 是公开的,任何人都可以在浏览器中更改。简单的答案是:是的。

标签: php html json string forms


【解决方案1】:

正如许多 cmets 所说的那样,这是可能的,而且很容易做到。解决此问题的一种方法是分配每个选项和 ID,然后将与任何一个 ID 关联的值存储在数据库中。当用户单击一个选项时,您会查找该 ID 并以这种方式获取金额。

【讨论】:

    【解决方案2】:

    一旦内容交付给客户端(浏览器),您就不再真正拥有它,因此用户(以及您自己)可以随意修改它。

    如SO How to prevent html/JavaScript code modification的这个问题所述,有一些方法可以获得一些控制,但无法避免它:

    • 最重要的是:如果可能,您应该始终验证到达后端的任何数据,然后再进行处理。

    • 您可以等到用户执行您想要的操作,然后加载内容。

    • 您可以使用DOM events 来控制何时更改您的元素并对这些操作做出反应。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-07
      • 2016-11-09
      • 1970-01-01
      • 2018-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多