0

我有 2 个 JSP pay.jsp:,confirmPay.jsp

用户在 上提交数据(信用卡号等)pay.jsp。此数据在后端进行验证,并与其他一些数据一起显示在confirmPay.jsp. 一旦他点击“确认”,数据(来自pay.jsp页面)将用于计费。如果他单击“取消”,则放弃付款。

这里重要的事情是:

  1. 数据只能在pay.jsp
  2. 应在两次调用之间保留数据

我知道这个问题类似于如何在表单提交之间保留 ModelMap?. 只是想知道什么适用于这种情况,涉及敏感信息(如信用卡#)。把它放在一个会话中意味着同一个函数中的多个调用会产生问题。

请帮助我了解最佳选择是什么。

4

1 回答 1

2

如果您担心在会话中存储敏感数据,请不要担心。会话保存在服务器端的内存中。它不会上网,也不能被网络上的入侵者从浏览器内存中读取。

如果您担心用户在同一页面上有多个打开的浏览器选项卡或框架,并在同一会话中并行发送多个付款,那么这是一个非常有效的问题。我倾向于更喜欢无状态的解决方案,所以如果隐藏字段是一个可接受的解决方案,那么只需使用它们来维护从一页到下一页的状态。这不会对多个选项卡造成任何问题。如果需要使用 session 来存储中间状态,那么可以简单地生成一个唯一 ID(例如使用序列号),使用唯一 ID 作为 session 属性将数据存储在 session 中,并将这个唯一 ID frompage使用隐藏字段进行分页。这样,多个选项卡将使用不同的会话属性,并且不会相互干扰。

于 2012-10-27T21:30:03.470 回答