`
zhangziyueup
  • 浏览: 1170157 次
文章分类
社区版块
存档分类
最新评论

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

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

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

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

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

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

相关推荐

    ASP.NET多功能聊天软件的设计与开发——文字聊天文件传输模块(源代码+论文).rar

    该案例采用了C#编程语言,并结合了ASP.NET的核心技术,如Web Forms、AJAX和SignalR等,以实现实时通信和高效文件传输。 **主要特点**: 1. **实时文字聊天**:通过SignalR库实现了客户端与服务器之间的实时双向...

    Visual.Basic.2010.&.NET4.高级编程(第6版)-文字版.pdf

    14.2.6 始终置顶——topmost属性 546 14.2.7 附属窗体 546 14.2.8 改变窗体的透明度 547 14.2.9 可视化继承 549 14.2.10 滚动窗体 549 14.2.11 mdi窗体 549 14.2.12 vb 2010中的mdi样例 550 14.2.13 ...

    Java数据库编程宝典3

    1.4 数据库安全和数据控制语言 1.4.1 管理数据库用户 1.4.2 用户权限 1.4.3 用户组和角色 1.5 数据库体系结构 1.5.1 Java数据对象 1.5.2 两层模型 1.5.3 三层模型 1.6 小结 第2章 设计数据库 2.1 ...

    成绩管理系统(源码+论文) ASP.Net c#

    此系统选用C#作为开发语言,Visual Studio 2005作为开发工具,并且选用了一种新的web开发技术——ASP.Net,此技术具有以下几个重要优点:强大的动态Web支持, ASP.Net为Web页面提供了一种集成式的支持。使用ASP.Net...

    h_JAVA 2应用编程150例.rar

    第8章 Java安全控制编程 291 实例87 控制访问权限 292 实例88 产生密钥 296 实例89 单钥加解密 299 实例90 双钥加解密 301 实例91 数字签名 303 实例92 实现SSL协议 306 实例93 简单的HTTPS服务 314 第9章 Java Web ...

    java面试题库2021.pdf

    ②AOP 与事务、 权限控制 ③S2SH 整合开发 ④Spring, JPA 整合 2、 Hibernate ①ORM 与持久化映射 ②延迟加载、 性能优化 ③HQL 查询、 条件查询、 SQL 查询 ④二级缓存与查询缓存 3、 Struts ①MVC 模式与 Struts ...

    asp.net知识库

    Coalesys PanelBar + R.a.d Treeview +Xml 构建的Asp.net 菜单和权限管理模块 突破屏蔽限制,自己的网站使劲弹新IE窗口 对页面SCROLLING的CSS不能生效原因 .Net 中IE使用WinForm控件的使用心得。 动态加载用户控件的...

    Java数据库编程宝典2

    1.4 数据库安全和数据控制语言 1.4.1 管理数据库用户 1.4.2 用户权限 1.4.3 用户组和角色 1.5 数据库体系结构 1.5.1 Java数据对象 1.5.2 两层模型 1.5.3 三层模型 1.6 小结 第2章 设计数据库 2.1 ...

    Java数据库编程宝典4

    1.4 数据库安全和数据控制语言 1.4.1 管理数据库用户 1.4.2 用户权限 1.4.3 用户组和角色 1.5 数据库体系结构 1.5.1 Java数据对象 1.5.2 两层模型 1.5.3 三层模型 1.6 小结 第2章 设计数据库 2.1 ...

    Java数据库编程宝典1

    1.4 数据库安全和数据控制语言 1.4.1 管理数据库用户 1.4.2 用户权限 1.4.3 用户组和角色 1.5 数据库体系结构 1.5.1 Java数据对象 1.5.2 两层模型 1.5.3 三层模型 1.6 小结 第2章 设计数据库 2.1 ...

    Android开发与应用——张荣,原书配套课件

    5.2.2 代码和XML联合控制视图界面 5.3 多界面的使用 5.3.1 使用Intent封装数据 5.3.2 使用Bundle封装数据 5.3.3 获取另一个界面返回结果 5.4 小结 练习 第6章 Android数据存储与共享 6.1 数据存储与...

Global site tag (gtag.js) - Google Analytics