有关web中的权限问题

今天碰到的几个疑问:

1. XP和Scrum的区别和不同

做过2个agile项目,第一个偏向于xp,第二个偏向于scrum。关于两者的区别以后再谈。

2. 测试终止的时间点往往由项目计划时间来判断,而不是根据测试出现错误的概率来判断。

3. web测试中,有关安全性的

用户A的email是a.com,用a.com登录web,进行操作。

用户B的email是b.com,在不同的机器,用b.com登录web,进行操作。

A和B都是管理员身份,B操作用户管理模块,删除了A账号信息。此时在A的机器,A的session还在。问题在于是否不应当删除A账号,用什么办法监控A账号在使用?

另外,若B修改了A用户的信息,比如email信息,导致A的session里的操作可能收不到邮件了。这可能存在着安全问题。如何解决?

A:和公司里一位比较资深的QA manager和一位senior QA沟通后,了解到这个现象的有关知识。首先,这是个有关permission的设计问题,开发人员在代码之前是应当对此情况有构思的。那么,有两种比较可取的解决方案。一种是建立一个root用户,root比admin高一级,拥有着最大的权限,无所不能,只有root可以修改删除admin。当然被修改删除的admin是没被使用的,没有客户端用它登录的。每个admin登陆后,看到的只能是自己本身和自己创建的用户,对这些用户有修改删除的权限,对其他的admin以及相应的用户没有view权限。这种方案的好处是角色划分清晰,各尽其能。坏处是代码可能改动较大,可能有数据库存储过程的修改,会有些不可知的问题。 另一种解决方案是指定某一admin用户为root角色,只有它登录后才能修改删除admin。其他admin登陆后,可以看到出自己之外的其他admin,不过没有修改,删除的权限。这种方案的好处是改动小,很可能只是disable页面的修改删除button,对一些用户做些限制。坏处是角色结构是平级的,需要向使用者说明这种设计。

对于admin的用户较少的网站,这个问题似乎显得不那么重要,只需要告知大家有这个问题,彼此不要互相修改删除就行。如果要报bug,就属于那种enhancement的bug。

将这个问题和一位开发人员沟通,他辩护到,网站使用的是cache,不是session,若一个客户端修改数据库后,cache立即更新,那么另一个客户端刷新页面后看到的应当是最新的数据。听起来很有道理。若一个客户端A修改了B客户端的登录admin的权限,使其降低了一个级别,在B浏览器刷新页面后,虽然数据更新了,但是B仍旧以admin的角色登录着,享有着admin的权限。

原文地址:https://www.cnblogs.com/maoya/p/2689118.html