我有一个4步表单流程。
Form.php发布到validate.php,这取决于验证重定向到form.php或review.php。最后一步是complete.php
每个页面都使用HTTPS调用,但validate.php除外,它是创建SESSION变量的地方,然后重定向回form.php或者review.php调用https。
浏览器上的锁定永远不会消失,但有人告诉我,如果你发布到相对路径(没有明确调用https),表单不安全。
这是真的吗?我安全吗?有没有办法检查和/或证明表格过程是否安全?
有人告诉我这是安全的,但我只是想确定,所以我不负责任。
我在表单帖子上使用相对路径,因为当使用HTTPS显式调用页面时,不会创建SESSION变量。如果有人有可能的解决方案,那也很好。
答案 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,至少,您的数据传输将更难以拦截或欺骗。