Web安全读书笔记3- 会话安全

HTTP协议没有状态,使用会话来区分每个用户,每个用户有一个会话令牌或者是标识符
在服务器端通过散列表保存每个用户的信息,散列键为会话令牌

大多数程序使用HTTP Cookie 作为服务器与客户端传送会话令牌的机制
服务器给新客户发送
Set-Cookie:ASP.NET_SessionId=magjk3323jkl232323
客户随后提出的请求中发送
Cookie: ASP.NET_SessionId=magjk3323jkl232323

还有些应用程序通过几个不同的数据来组成令牌,包括cookie、URL参数和隐藏表单字段

有些令牌具有一定意义 可能以一定形式转化过来(电子邮件,IP地址,用户名日期等)

有些应用程序在登录阶段使用HTTPS包含用户证书的安全(用户名密码)但在用户会话的其他阶段转而使用HTTP,这样是不正确的,可能被截获会话。应该使用HTTPS加密会话 来保证安全性

有些应用程序在站点首页使用HTTP,而从登录页面开始使用HTTPS,然后许多应用程序在用户访问第一个页面开始就发布给用户一个令牌,然后在用户登录后不更改令牌,那么有可能在登录前就被攻击者拦截令牌,而可以进行攻击。

即使HTTPS来访问页面,但是用户使用后退或者直接输入URL访问HTTP的页面(如登录前的页面)或者用户把HTTPS的页面修改URL输成HTTP,有可能会泄露令牌

如果令牌使用Cookie传输,应该加上secure标记。

有些应用程序使用URL查询字符串来传递令牌而不是使用HTTP Cookiehuozhe POST请求主体来传输令牌
Http://www.yahoo.com/jsessionID=kjdkflj234kljdfjdklfj

使用URL查询字符串来出传递令牌,可能导致会话令牌出现在各宗为授权用户可以访问的系统日志中

用URL传递令牌,会导致攻击者向用户发送一封邮件,包含他控制的Web服务器链接,用户访问这个链接,攻击者就能实时收到该用户的访问令牌,

静态令牌和并行会话都会造成漏洞

会话未正常退出也会造成漏洞
应用程序可能仅仅清空客户端Cookie,而没有删除服务端的会话信息

Cookie 的domain 和path属性
Cookie 如果域设置过大,可能会导致漏洞
如把domain设置为wahh-blogs.com
而每个用户都有一个blog子域时
herman,.wahh-blogs.com
soleao. wahh-blogs.com
cookie被自动提交到这个范围内的每一个子域
当一名登陆过的用户访问其他用户的博客,它的会话令牌将与请求一起提交,如果允许博客作者在自己的博客中插入恶意javascript脚本,那么将可以窃取用户会话令牌。

位于/apps/secure/foo-app/index.jsp的应用程序建立一个cookie后,浏览器默认会将cookie重新提交到路径/apps/secure/foo-app及任何子目录,但是可以使用path设置目录 例如 path=/apps

你可能感兴趣的:(Web,应用服务器,读书,asp.net,asp)