【问题标题】:Secure form submission安全表单提交
【发布时间】:2023-04-02 23:40:02
【问题描述】:

所以有人告诉我,当有人在您的前端查看源代码时,让这种东西可见是不安全的:

<form action="http://www.somedomain.com/form.php" method="post">

基本上,能够看到表单提交的 php 文件的人是危险的。是这样吗?如果是这样,我如何使我的可见源安全,同时仍然让表单提交到我们假设的“form.php”?

【问题讨论】:

  • 为什么会不安全??
  • 我不知道。但是我发表了一些评论,说我无法看到其他表单的提交位置,而我的老板(他精通技术但不是开发人员)说,“但查看它提交的位置也是一个重大的安全风险”。 ...所以我想我会去找真正的专家并确定一下。
  • @NotMuchOfAProgrammer 如果您的老板担心 SQL 注入,请确保您正确清理用户提交的数据
  • 这不是不安全的。如果你的朋友这么说,他就错了。安全性应该来自良好干净的代码(清理form.php 中的输入)。 默默无闻的安全绝不应该是最终目标。
  • @NotMuchOfAProgrammer 这里是如何解释这个问题,向你的老板解释表单标签的作用是什么以及为什么需要操作字段,还向他解释一个安全的 form.php 脚本应该'不要引起任何问题并向他证明您的 form.php 是安全的……否则,请告诉我们他或您对网络应用安全的担忧是什么

标签: php html forms security submit


【解决方案1】:

首先,php源代码不能被查看,除非你通过htaccess或其他方式限制访问,其次,你的前端源代码必须始终是公开的,因为安全问题不是从头到尾处理的。后端,第三,你的 php 文件的源不能像 css 文件或 javascript 代码一样查看

如果你想限制对 form.php 的直接 HTTP 访问,你可以使用 .htaccess

我使用这个解决方案,一些文件被标记为 somefile.php,但一些 util 文件要么存储在一个文件夹中,要么被标记为 utils.inc.php,所以我确保我限制对 inc.php 文件的直接访问并允许其他一切

【讨论】:

  • 总的来说我同意,但你没有强调你真的不能而且不能限制客户知道它需要发送到哪里数据。 OP 的老板只是不知道他在说什么。即使由于某种原因,表单将通过其他方式提交并且默认的“action”将被忽略,任何访问该站点的人仍然可以看到数据已发送到哪里。这样的“安全问题”并不是真正的安全问题,他应该把精力放在 CSRF 保护之类的......
  • 我同意,因为我开发了 Intranet 应用程序,我并不真正关心 CSRF 问题,但您的评论很重要,需要考虑
【解决方案2】:

我个人认为显示表单提交的页面也没有问题,因为一旦用户提交了他/她的输入,action="" 无论如何都会将用户重定向到所述页面,所以无论哪种方式他们将看到他们将在哪里结束。无论是在 URL 栏还是表单脚本中。

只需确保在将用户输入数据传递到数据库之前对其进行清理。

取决于您用于数据库交互的内容;将提供保护您免受注射的功能

【讨论】:

    【解决方案3】:

    仅在非常选择的特定情况下,隐匿安全是一个很好的策略。但是知道表单提交到哪里——这实际上是 Web 表单的本质。现在有办法了。

    即使您提交的 URL 是出于某种安全印象而以某种方式动态创建的 - 只需在浏览器和服务器之间设置一个代理,整个 HTTP 对话就可以打开以供阅读。

    【讨论】:

      猜你喜欢
      • 2014-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-25
      • 2023-03-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多