<table width="100%" border="0" cellspacing="0" cellpadding="5" bgcolor="#649CCC"><tr valign="middle"><td align="left"> <p class="p_Heading1"><span class="f_Heading1">第七章 验证与授权</span></p> </td> <td align="right"> <span style="font-size: 9pt"> <a href="introduction.htm">Top</a> <a href="new_item41.htm">Previous</a> <a href="new_item43.htm">Next</a> </span> </td> </tr></table>
<table width="100%" border="0" cellspacing="0" cellpadding="5"><tr valign="top"><td align="left"><p style="line-height: 1.50;"> 第七章 验证与授权</p><p style="line-height: 1.50;"> 很多Web应用被其糟糕的身份验证与授权机制所困扰。本章主要讨论相关这些机制的漏洞,传授一些帮助你不犯通病的方法。我将通过一些例子进一步说明这些方法,但请注意不要把这些示例与其上下文割裂开来看,理解其中包含的原则和方法是很重要的。只有到那个时候你才能对它们进行正确运用。</p><p style="line-height: 1.50;"> 通过验证我们可以确定一个用户的身份。典型的做法是简单地使用用户名和密码进行检查。这样我们就能确定登录用户是一个授权用户。</p><p style="line-height: 1.50;"> 身份验证,常被称为访问控制,是一种你能用来保护对受限资源的访问及确认一个用户是否有权访问特定资源的方法。例如,很多WEB应用会有只对授权用户开放的资源、只对系统管理员开放的资源以及对所有用户开放的资源。</p><p style="line-height: 1.50;"> 产生访问控制漏洞的一个主要原因是粗心大意——在Web应用中这一部分程序是最少被关心和注意的。在开发中管理功能和访问控制常常是最后考虑的,而且一般是从授权用户的出发点去考虑和编写,并没有考虑攻击者可能会使用的手段。对授权用户的信任远远高过匿名用户,但是如果你的管理功能是能通过URL直接公开访问的话,就会成为攻击者钟爱的目标。疏忽是你首要的大敌。</p><p style="line-height: 1.50;"> 为达到安全的目的,需要在设计时就综合考虑访问控制。它不应只是一个现有应用的门闩,尽管有时可能是这样的,但该流程是非常容易发生错误的,同时访问控制中的错误必然导致安全漏洞。</p><p style="line-height: 1.50;"> 访问控制还需要一个可靠的识别机制。毕竟,如果一个攻击者能伪装成一个合法用户,所有的基于用户识别的访问控制是无效的。因此,你要考虑到攻击的情况,例如会话劫持。关于会话相关的攻击手段请参见第四章。</p><p style="line-height: 1.50;"> 本章涉及相关验证与授权中通常需要关注的四个方面:暴力攻击,密码嗅探,重播攻击以及永久登录。</p><p style="line-height: 1.50;"> </p><p style="line-height: 1.50;"> </p><hr noshade="noshade" size="1"/><p style="line-height: 1.50;"> </p></td></tr></table>
- 第一章 简介
- 1.1.PHP功能
- 1.1.1. 全局变量注册
- 1.1.2. 错误报告
- 1.2.原则
- 1.2.1. 深度防范
- 1.2.2. 最小权限
- 1.2.3. 简单就是美
- 1.2.4. 暴露最小化
- 1.3. 方法
- 1.3.1. 平衡风险与可用性
- 1.3.2. 跟踪数据
- 1.3.3. 过滤输入
- 1.3.4. 输出转义
- 第二章 表单及URL
- 2.1. 表单与数据
- 2.2. 语义URL攻击
- 2.3. 文件上传攻击
- 2.4. 跨站脚本攻击
- 2.5. 跨站请求伪造
- 2.6. 欺骗表单提交
- 2.7. HTTP请求欺骗
- 第三章 数据库及SQL
- 3.1. 访问权限暴露
- 3.2. SQL 注入
- 3.3. 数据的暴露
- 第四章 会话与 Cookies
- 4.1. Cookie 盗窃
- 4.2. 会话数据暴露
- 4.3. 会话固定
- 4.4. 会话劫持
- 第五章 包含
- 5.1. 源码暴露
- 5.2. 后门URL
- 5.3. 文件名操纵
- 5.4. 代码注入
- 第六章 文件与命令
- 6.1. 文件系统跨越
- 6.2. 远程文件风险
- 6.3. 命令注入
- 第七章 验证与授权
- 7.1. 暴力攻击
- 7.2. 密码嗅探
- 7.3. 重播攻击
- 7.4. 永久登录
- 第八章 共享主机
- 8.1. 源码暴露
- 8.2. 会话数据暴露
- 8.3. 会话注入
- 8.4. 文件系统浏览
- 8.5. 安全模式
- 附录 A. 配置选项
- 附录B. 函数
- 附录C. 加密