我的表格安全吗?

时间:2009-09-16 12:28:43

标签: php security forms ssl https

我有一个4步表单流程。

  1. form.php的
  2. validation.php
  3. review.php
  4. complete.php
  5. Form.php发布到validate.php,这取决于验证重定向到form.php或review.php。最后一步是complete.php

    每个页面都使用HTTPS调用,但validate.php除外,它是创建SESSION变量的地方,然后重定向回form.php或者review.php调用https。

    浏览器上的锁定永远不会消失,但有人告诉我,如果你发布到相对路径(没有明确调用https),表单不安全。

    这是真的吗?我安全吗?有没有办法检查和/或证明表格过程是否安全?

    有人告诉我这是安全的,但我只是想确定,所以我不负责任。

    我在表单帖子上使用相对路径,因为当使用HTTPS显式调用页面时,不会创建SESSION变量。如果有人有可能的解决方案,那也很好。

4 个答案:

答案 0 :(得分:6)

即使未明确发布到例如https://your-server.com/validate.php,您使用相对链接(例如action =“validate.php”)的事实意味着它仍然在每一步都使用HTTPS。

简短回答 - 协议在相对链接上不会改变。因此,如果form.php不是HTTPS,则不会使用相对链接安全地提交表单变量。

答案 1 :(得分:2)

  

浏览器上的锁定永远不会消失   但我被告知你是否张贴给亲戚   路径(不显式调用https)   形式不安全。

那是垃圾。相对URI是相对URI,不会导致协议发生变化。

如果页面是通过HTTPS请求的,并且URI是相对的,那么下一个请求也将使用HTTPS。

  

我在表单帖子上使用相对路径   因为没有创建SESSION变量   使用HTTPS

显式调用页面时

你必须误解问题。浏览器在内部将相对URI解析为绝对URI。发送的数据没有区别。

答案 2 :(得分:1)

使用相对路径是可以的。确保您可以使用网络数据包查看器应用程序来查看内容是否已加密。但有一件事让我担心您的代码,您是否将经过验证的数据存储在会话变量中?如果是这样,你确定没有人可以访问root用户和php以外的会话值。我建议将验证值存储在数据库中以防万一,您总是可以使用crontab删除过时的记录。

答案 3 :(得分:1)

如果您有数据发布到正在用于从validate.php完成交易的浏览器,或者没有使用HTTPS获取数据,那么您的应用程序中可能存在漏洞。如果使用相对路径从通过HTTPS加载的页面调用validate.php,则默认情况下它将使用HTTPS - 如果未明确指定,则相对路径会继承协议,主机名和端口。

这些都不意味着您的页面是安全的。这意味着正在发送的数据正在加密。即使使用HTTPS传输数据,您仍可能需要处理几个问题(弱密码,SQL注入,跨站点脚本等)。如果您使用HTTPS,至少,您的数据传输将更难以拦截或欺骗。