web安全编程——权限的分配和控制

来源:互联网 发布:怎样联系淘宝人工客服 编辑:程序博客网 时间:2024/05/17 02:29
web安全编程——权限的分配和控制
2009-07-02 15:46
通常权限划分是为了控制数据和功能的使用范围。传统的划分方法一般将用户划分为匿名用户、普通登录用户、管理员用户。我们暂时将以上三
种用户称为三种用户组。
在大部分情况下,我们还需要对每个组内的用户作更加细致的权限控制。比如:电子邮件服务器上的登录用户之可以看到自己的电子邮件,但是
不可以看到其他人的电子邮件。
通常我们会使用以下三种机制作权限的控制:
1、验证(登录验证)
2、Session 管理
3、访问控制
这三中机制分别用来保护网站的三个独立的方面。因为这三者都是相互关联的,因此网站的安全性取决于其中最薄弱的一个机制。任何一个模块
被攻克,黑客都可能获得所有的访问权限和敏感数据。

一、验证
这是最基础的权限控制方法。没有这个机制的网站全都为匿名访问的。因为他无法区分某次的请求是来自哪个用户的。现在,普遍的验证方法是
用户名,密码登录验证。如果需要更严格的权限验证,可以使用其他的验证方法。例如:客户端使用证书、smartcards、挑战响应认证。在登录
式认证中,一般会伴随有其他的工具才能形成完整的认证服务。例如:注册服务、帐号恢复服务、修改密码服务等。

这样的机制很简单。因此在设计时和实现时都存在不少的漏洞。这些漏洞都可能导致攻击者修改其他用户的帐号信息、暴力破解其他用户的帐号
信息和绕过登录验证机制。如果想要攻击某一个网站,可以多花些精力研究一下对方网站的登录函数。发现这些函数中的漏洞可以使你匿名访问
敏感数据。

二、Session 管理
每时每刻服务器都在接受来自不同用户的不同请求。服务器区分这些用户和请求的方法几乎都是使用Session。Session是保存在服务器端的一个
数据集,用来记录用户和服务器交互的状态。每个Session对应一个令牌。每当用户收到一个令牌,浏览器会自动把这个令牌附加在所有后续的>请求中。这样服务器就可以将用户和请求对应起来。HTTP Cookie是实现令牌传送的标准方法。但是也有一些人会使用hidden field 或者URL >来传输令牌。如果用户在一段固定的时间内没有作任何的操作,那么Session就会过期。
从攻击者的角度来看。Session管理很大程度上依赖于令牌。因此只要成功获得令牌,那么攻击者就可以冒充其他用户来执行操作。Session管>理的弱点主要在两方面。第一是令牌产生的方法。如果产生方法被破解。那么攻击者很容易就可以冒充其他合法用户。第二是令牌在客户端和服
务端的传送方法。攻击者可能在网络上捕获到其他用户的令牌,这样也可以达到冒充其他用户的目的。

三、访问控制
访问控制是最后一个确保安全访问的步骤。当用户请求到来时,访问控制模块需要判断用户是否应该具有访问他所请求的信息的权限。这个时候
用户可能已经通过了前面两道关卡。这个时候一般需要更具用户此时所具有的角色来获得判断结果。这需要比前面两个更加细致的逻辑控制。也
正因为如此,这个模块是经常会出现问题的地方。结果就是攻击者拿到了敏感数据和功能的访问权限。开发者或者设计者往往想象客户会如何正
确的进行访问的流程,而攻击者往往去想那些别人没有想到的访问流程。因此这样的BUG才会平凡出现。对一个网站这个模块的深入研究,会能>会使你获得更多的权限和数据。
原创粉丝点击