2014-10-19 60 views
1

我的网站用于管理客户帐户。如果我通过网站访问CustomerA的帐户,然后打开一个新选项卡并访问CustomerB的帐户,持有客户ID更新的会话认为我现在正在处理CustomerB。然后,如果我再次点击CustomerA的标签并开始编辑该页面,我实际上正在编辑CustomerB的数据库记录。这已经发生并导致了各种各样的问题,所以我需要找到一种可以阻止它的傻瓜式的方法。我不想将客户ID放入网址中,因为这会导致滥用行为。如何在同一浏览器的不同选项卡中维护会话?

+0

在页面加载时将客户ID保存到查看状态,并在回发时检查viewstate的客户id =会话的自定义ID,那么你很棒!否则只是丢弃并显示错误消息。 – 2014-10-19 10:59:17

+0

如果您不想公开该ID,请取customerID;生成一个随机标记并将该标记添加到URL。保持令牌和内存中的ID之间的链接。仍然需要验证它,因为默默无闻的安全性不存在 – Pleun 2014-10-19 11:36:11

回答

0

由于您描述的问题,会话不是一个容纳此类信息的地方。您需要将客户ID与页面本身(隐藏字段或网址中)一起传递,因此,当您发回表单时,它完全知道您要做什么。会话不会保护你,也不会增加任何额外的安全性。您需要确定用户是否拥有正确的权限,因此您应该关注此方面。

相关问题