zoukankan      html  css  js  c++  java
  • 有关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的权限。

  • 相关阅读:
    硬件04:反馈与触发器
    硬件03:二进制减法器
    硬件02:二进制加法器
    ASP.NET MVC 表单提交多层子级实体集合数据到控制器中
    微信全局获取并缓存Accesstoken的值
    MySQL 中文显示乱码
    HTML5 Canvas绘图详解 drawImage() 方法 有图有真相!
    [原创]超强C#图片上传,加水印,自动生成缩略图源代码
    微信公共服务平台开发(.Net 的实现)5-------解决access_token过期的问题 .
    2015-10-19深圳面试
  • 原文地址:https://www.cnblogs.com/maoya/p/2689118.html
Copyright © 2011-2022 走看看