互联网上的WEB程序需要大量的安全机制来防御攻击。安全机制主要有:①处理用户的访问WEB的功能和数据,防止未授权访问。②处理用户的输入,防止用户的错误输入对程序造成影响。
 
 
③处理hacker,保证在被攻击时能正常处理请求,且阻断hacker攻击。④处理管理员的行为,帮助管理员配置WEB程序的功能。上面四点都可能成为hacker攻击的方向。
 
1、处理用户的请求。用户一般分为未授权用户(匿名用户)、注册普通用户和管理员。每种用户的权限是不同的,看到的数据和可执行的操作都是不同的。WEB程序大致通过三种机制来处理用户的访问:身份验证、会话管理、访问控制。这三种机制互相依靠,攻破一点,即可黑入别人的账户。
 
身份验证机制,现在绝大部分的WEB程序都采用原始的验证方式,即用户名和密码验证,服务器验证通过,即登陆成功,走向会话管理和访问控制环节。一些安全性比较高的WEB程序,可能可能还会加入证书、Token等验证方式。原始的用户名、密码验证机制存在很多问题,如可以获取用户名信息、可以推测密码、可以通过程序漏洞绕过认证。如果WEB程序存在sql注入漏洞,hacker就可以绕过密码认证,sql注入解析。
 
用户验证通过,就进入会话管理阶段。用户登录后,还会访问各种页面、发出各种http请求,这时候程序还要处理其他用户的登陆请求,为了区分不同的用户,WEB服务器需要为每个用户分配一个唯一的标识。一般的WEB程序都会为每一个用户建立一个会话(session),并且向用户发布一个令牌。会话其实就是保存在服务器中的数据结构,用来管理用户和服务器之间的交互状态。令牌是一串唯一的字符串,令牌映射在会话(session)中,帮助WEB程序将请求和该用户联系起来。会话令牌的传递方式有隐藏表单字段(hiden form field)、URL查询字符(query string),但一般使用的是http cookie,如果设定时间段内用户没有任何请求,服务器session会超时,断开连接。
 
处理用户请求的最后一步是访问控制,根据既定的规则来决定允许或者拒绝用户的请求。如果前面的权限认证机制正常工作,服务器就可以从用户发送的请求中确认用户的身份,从而根据用户的权限来决定是否授权用户的请求动作。由于访问控制的要求很复杂,场景很多,因此这一阶段的安全漏洞也很多,但是渗透测试时,也许需要大量重复性的工作,才会发现这样的漏洞。
 
摘自:?p=142