我正在处理一个2页的表单,POST是对数据库的查询。只读,无写入。这些信息都不是机密的,将来也不会是机密的。
该网站必须是100%非JS兼容,所以Ajax等不可用。我得到的只有PHP,宝贝!
FORM-2的内容依赖于FORM-1中的一小部分数据,但FORM-1中的所有数据也必须与FORM-2中包含的最终查询一起提交
我突然想到,我可以通过两种不同的方式完成从FORM-1到FORM-2的数据传递:
1)将FORM-1变量数据发送到会话
2)将FORM-1变量数据发布到FORM-2上的隐藏字段
它们看起来同样难/容易实现,所以我想知道关于安全性和诸如此类的事情。
另外,在这两种情况下,如果我FORM-1 -> FORM-2 -> Results并不喜欢我的结果,我是否可以两次Back Button到FORM-1,并且仍然检查、写入等所有数据?
发布于 2010-03-01 12:50:08
从技术上讲,会话打破了web的“无状态”特性,另一种选择更可取。如果安全性或某些人从他们自己的服务器使用自己为form 1创建的值提交form2确实存在问题,您可以在提交form 1时对数据进行加密,并将加密后的数据存储在form 2的隐藏字段中。(使用mcrypt库--我有一些示例代码)。
此外,如果我们是书呆子,后退按钮不应该在POSTed表单上工作,因为这会在创建或销毁两次资源时产生问题。但我认为大多数现代浏览器都支持它--这是浏览器的一个功能,而不是服务器的一个功能,尽管您可以做一些事情,比如在每次提交时要求一个唯一的值来阻止它。
但实际上,几乎每个人几乎所有时间都在使用会话cookie。这要容易得多,有很多例子,而且相对安全。
https://stackoverflow.com/questions/2353893
复制相似问题