我正在处理一个2页的表单,POST
是对数据库的查询。只读,没有写作。这些信息都不是保密信息,也不是保密信息。
该网站必须是100%非JS兼容的,因此Ajax等不可用。我得到的只是PHP,宝贝!
FORM-2
的内容取决于FORM-1
中数据的一小部分,但FORM-1
中的所有数据也必须与{{1}中包含的最终查询一起提交}}
我发现我可以通过两种不同的方式将数据从FORM-2
切换到FORM-1
:
1)将FORM-2
变量数据发布到SESSION
2)将FORM-1
变量数据发布到FORM-1
它们似乎同样困难/易于实施,因此我对安全性感到疑惑......
此外,在任何一种情况下,如果我FORM-2
并且不喜欢我的结果,我可以FORM-1 -> FORM-2 -> Results
两次到Back Button
并且仍然检查,写入所有数据等吗?
答案 0 :(得分:5)
从技术上讲,会话打破了网络的“无国籍”性质,另一种选择更可取。如果安全性或某人从自己的服务器提交form2并使用表单1自行创建的值的危险确实存在问题,则可以在提交表单1时加密数据并将加密数据存储在表单2的隐藏字段中。(使用mcrypt库 - 我有一些示例代码)。
此外,如果我们迂腐,后退按钮不适用于POST表单,因为这会产生两次创建或销毁资源的问题。但我认为大多数现代浏览器都支持它 - 这是浏览器的功能,而不是服务器,尽管你可以做一些事情,比如在每次提交时要求一个唯一的值来阻止它。
但实际上,几乎每个人几乎都在使用Session cookies。它更容易,有很多例子,而且相对安全。