html表单是否会自行提交任何安全问题?

时间:2014-05-14 11:17:32

标签: html security

我试图通过SO查找类似的问题,但我无法找到一个,也是我竭尽全力在网上搜索,对不起,如果这是一个愚蠢/重复的问题

我的问题的论坛是:

如果我的表单中包含未编码的密码,那么它是否安全&#34;将表格传回[self],即<form action="">

编辑:我想关注第三方的安全性,假设用户自己不是黑客。

我知道我的问题可能有点广泛,所以我将其缩小到我感兴趣的东西。我最感兴趣的是:

1)服务器是否将提交表单作为内部转发事件处理为自己,还是将其视为正常的服务器到服务器http调用?

2)是否有可能以某种方式拦截表单提交并从此操作中提取密码? (包括点击服务器和客户端之间的连接?)

如果有人知道[提交给自己]的任何潜在安全问题,请随时留下答案,以便未来的SO用户可以从中受益,谢谢。

4 个答案:

答案 0 :(得分:2)

向网页提交数据唯一安全的方法是永远不要信任用户输入

现在关于你的两个问题:

  1. 提交表单将作为常规请求处理,尽管可能是POST请求。
  2. 可以捕获互联网流量,因此,如果您通过互联网发送密码数据,最好确保它超过 HTTPS
  3. 使用像Mozilla的FireBug这样的开发人员工具,可以很容易地更改通过表单提交的所有数据。您甚至不必使用您的网页,可以使用Telnet等工具轻松欺骗您的页面的POST请求。

    所以我要说这个形式的动作是什么并不重要;尽可能使用HTTPS并始终验证输入...

答案 1 :(得分:1)

您是否将表单提交到同一页面不会产生任何安全隐患。您可以/应该采取许多其他措施来保护表单。提交给自己是无关紧要的。它可能会造成用户体验烦恼。您是否尝试刷新页面只是让浏览器尝试重新提交表单。

  1. 不是重定向。正常的帖子。然而,为了减轻这种用户体验的烦恼我 提到,你做任何事后都会重定向到同一页面 你需要使用数据。

  2. 除了表单是否提交给自己之外,还取决于许多其他事项。从您的表单开始就是安全(https)服务器。

答案 2 :(得分:0)

经过多次更新后

动作=&#34;&#34;与action =&#34; somefile&#34;相同在安全感方面。所以action =&#34;&#34;并没有什么不妥,据我所知,大多数网站都会对待这样的表单。最受欢迎的解决方案是:

  • 首先检查PHP是否有任何发布数据
  • 检查此数据是否正常(安全,服务器端验证)
  • 使用数据创建内容(保存到数据库,发送给某人)
  • 使用action =&#34;&#34;。
  • 呈现表单

一个简单的例子:

<?php
   $name = '';
   if (isset $_POST['name']) {
      $name = $_POST['name'];
      if (ctype_alpha(str_replace(' ', '', $name)) !== false) { // verify data
          // in that case name consist only letters and spaces, it is ok.
          // do something with data here, for example save to database
          header('Location: successfile'); // Remove post data after all
      }
   }

   // render form
   $name = htmlspecialchars($name); // if name was in POST, here it is!
   echo '<form action="" method="post" />'
       echo '<label id="name" name="name" value="'.$name.'" />';
   echo '</form>';
?>

在这种情况下,一个文件正在执行两个作业。它会检查数据并对其执行某些操作,然后呈现表单。

请记住,表格可以使用&#34;部分&#34;来自提交的数据(POST)。因此,例如,如果有人使用特殊字符输入他的名字,而您只需要使用字母和空格命名,则不会遗漏数据。您可以渲染表单,并在输入名称值中输入错误的发布数据。 因此表格&#34;记住&#34;什么被填补,什么没有填补。

希望有所帮助

答案 3 :(得分:0)

我只是在搜索这类帖子。 是啊..

据我所知,这不是一种有效的方法, 攻击者可以更改下载内容的方法,就像他可以使用从POST到GET的参数。 我们实际上有像篡改数据这样的工具,它是firefox浏览器的插件。我们可以发布数据或篡改表格提交的数据。您可以将此插件添加到浏览器中,并且可以在提交表单之前通过单击篡改来检查数据是否可以修改。您还可以查看在线http篡改,篡改数据,修改实时标头以更改数据。这也可能导致sql注入。 如我错了请纠正我。 :) 欢呼声。