Maw*_*awg 5 javascript php session
坦率地说,它只是在v1.0中引起了太多的麻烦,因为它具有需要三个表单提交的功能,$_SESSION会话数据包含所有中间内容 - 只是让用户启动操作,然后打开第二个选项卡并执行第二个操作,它会遍历会话数据.
我怀疑这是恶意的(但不能打折).用户更有可能开始操作,被打断,忘记他们已经开始或无法找到原始标签,因此再次启动(然后再找到原始标签并尝试第二次完成操作).
由于我在PHP编码,我可以检测表单提交时会话数据的存在(如果用户打开另一个选项卡,我将如何使用JS?我想我需要Ajax - 对吧?).
所以,每次我开始一个操作时,我会检查会话数据中的标志,如果设置,我会重新加载到"对不起,戴夫.我害怕我不能那样做"页面,否则我设置标志并继续(记住在操作结束时清除它).
我想这可行,但是:
1)将浏览器应用程序限制为单个标签/实例是否可以接受?
2)我应该尝试在v2.0中允许多个实例吗?
还有其他意见,帮助或建议吗?
更好的设计是避免在会话中存储用户交互状态.将它放在隐藏的表单字段或其他内容中,以便每个客户端请求都带有与之关联的状态.如果您担心用户篡改它,请使用HMAC来防止它,并且如果它包含用户不应该看到的内容,则可能加密它.
只应在标签之间共享的状态(如用户的登录标识或购物车等)应存储在会话中.
| 归档时间: |
|
| 查看次数: |
5123 次 |
| 最近记录: |