首页 新闻 会员 周边 捐助

页面间流程安全 数据安全

0
悬赏园豆:10 [已解决问题] 解决于 2013-08-30 15:24

在用网站制作过程中,经常遇到具有流程性的页面,先操作第一个页面(不关闭),操作完成后,出现第二个页面。假设第一个页面有个编辑按钮,在操作完第二个页面后,不能允许在操作第一个页面的编辑操作。但是原先的第一个页面没有被关闭,还保持原有的状态,还是能编辑。请问各位大神有没遇到这样的问题,又是怎么解决的?谢谢各位大哥

Roc-Lee的主页 Roc-Lee | 初学一级 | 园豆:12
提问于:2013-08-28 11:23
< >
分享
最佳答案
1

没法解决。你最好把 B 做成弹出页面,或者实现正真的跳转,即 A 页面要关闭,B 保存后再跳转回 A 页面。跳转的含义是发起跳转的页面会关闭。

收获园豆:8
Launcher | 高人七级 |园豆:45050 | 2013-08-28 11:29

您好,你的想法这里也有个问题 假如两个人(黑人,白人 呵呵~~~),黑人是打开A页面,白人打开A页面,操作了B页面。白人是实现了你的效果,但是黑人还是可以点编辑的。

Roc-Lee | 园豆:12 (初学一级) | 2013-08-28 11:37

@S-Roc: 我不明白你想要什么,但是很可能你不明白 web 程序的原理。你说的这种方式是需要服务器去控制的,也就是说 白人在美国,黑人在非洲,它们都从自己的物理位置去访问你的网站的 A 页面,那么要实现你说的功能,服务器必须锁定 A 页面,一种方式就是白人打开 A 页面后,服务器要记录下 A 页面已经被访问过了(并设置一个超时),那么黑人再请求 A 页面时,服务器就拒绝响应,并告知黑人,此页面当前被锁定,只有等到白人点击了“保存”或超时时间到了后,黑人请求 A 页面时,服务器才把A页面发送给黑人。另一种方式,服务器同样要记录 A 页面的修改状态,同时在 A 页面中使用 js 轮询查询是否有别的人在修改 A 页面,当白人开始编辑A页面(打开B页面)时,服务器记录 A 页面正在修改的状态,黑人打开 A 页面时,js 从服务器的查询结果是 A 页面正在编辑,那么 A 页面就禁用编辑功能。

所以我不知道什么叫我的想法有问题,你随便建立一个Asp.Net MVC 项目,试下 AccountController 上的管理用户的功能,你就知道我只是描述了一个正常的流程,我并没有提出自己的想法。

Launcher | 园豆:45050 (高人七级) | 2013-08-28 11:49

@Launcher: 您好,可能是我表达上不好,让您误会了。您的想法没有问题。sorry 。。我就是感觉在编程上,单线程与多线程,单页面与多页面在状态的关系,想的多了就感觉里面好复杂。

Roc-Lee | 园豆:12 (初学一级) | 2013-08-28 14:52

@S-Roc: 单线程和多线程的关系跟单页面和多页面的关系是两码事,你不能混在一起谈,这不是一个层面的概念,分属不同的范畴。

Launcher | 园豆:45050 (高人七级) | 2013-08-28 14:57
其他回答(1)
1

你大概是指数据过期吧,这个主要靠后端逻辑控制。对于A页面,用户1打开->用户2打开->用户2修改保存->用户1保存(提示失败,因为在提交之前数据已经变化了...)

收获园豆:2
幻天芒 | 园豆:37205 (高人七级) | 2013-08-28 13:10
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册