web应用最佳实践 -会话管理 - 账号注销

come from:TT安全 > 软件开发安全 > 应用软件开发最佳实践


导读:本文介绍应用软件开发最佳实践。Web应用程序必须通过建立会话来记录用户的请求,帐号的注销功能是活跃会话管理的一个重要方面。

 

关键词:应用 软件开发 最佳实践 Web应用 会话 帐号 会话管理


      Michael Cobb是认证信息系统安全架构专家(CISSP-ISSAP),知名的安全作家,具有十多年丰富的IT行业经验,并且还从事过十六年的金融行业。他是Cobweb Applications公司的创始人兼常务董事,该公司主要提供IT培训,以及数据安全和分析的支持。Michael还合著过IIS Security一书,并为领先的IT出版物撰写过无数科技文章。此外,Michael还是微软认证数据库系统管理员和微软认证专家。

 

【TechTarget中国原创】问:从安全的角度,你如何看待Web应用程序开发中的帐号注销超时设置、缓存以及其他最佳实践的准则?

  答:Web应用程序必须通过建立会话来记录用户的请求,帐号的注销功能是活跃会话管理的一个重要方面。你的应用程序应该为用户提供一种方法途径,例如在每个页面上提供一个退出按钮或是链接,以便让用户退出帐号。另外,在一定时间内没有登录的用户应该被锁定起来,直到再次登录。

  这一时间长度应该根据你的用户与Web应用的交互方式以及数据的敏感程序来确定。例如,一些银行网站把超时时间定为10分钟,其中一个考虑的因素就是它们的用户所访问的都是非常敏感的数据。另外,由于“记住我(Remember Me)”这一选项能使超时设置失效,因此你的程序还应该禁用自动登录以及常连接(keep-alive)功能。

  不幸的是,你对应用内容的客户端缓存的控制能力是非常有限的。如果不希望浏览器缓存你的内容,那么你可以通过设置响应报文里的缓存控制指令来影响客户端的缓存操作。如果你不希望浏览器缓存你的网页,把响应头里的cache-control设为no-store就可以了。这一设置指示浏览器不要存储对它的任何响应或请求。不过,no-cache和no-store是在HTTP 1.1里定义的,因此无法被HTTP 1.0缓存支持。此外,对于像PDF文档和Excel表格这样的非HTML内容,即使上面这些标签已经被设置了也往往会被缓存。另一点需要引起重视的是,一些浏览器可以存储用户填写的表单数据,这常常不安全。如果你的任何一个Web窗口采集敏感信息,那一定加上AUTOCOMPLETE=FALSE这一属性来警告浏览器不要保存数据。我之所以用“警告”这个词,是因为这一属性并不在HTML规范之内的。如果用户所用的是共享的PC机,而且你认为你的程序处于高危险中,那就需要要求用户清空浏览器的缓存和历史记录。

  同样重要的是如果用户退出或会话超时,要清空服务端的会话状态,销毁服务器上的会话 ,还要把浏览器里的会话cookie覆盖掉,这是因为浏览器只有在它的线程实际终止了cookie之后才会把会话cookie删除掉。这样才能确保用户超时或退出后无法发起会话重放式攻击(session replay attack)。此外,URL里会话ID也不应该出现,因为可能会被肩窥者(shoulder surfer)看到、被浏览器缓存、还会被记录到其它网站的来路链接(referrer)里。理想的情况下,用户的整个会话,包括会话标识符,都应该用SSL加密保护,这样才能避免会话ID被网络窃听截取。会话ID应该是一长串随机生成的复杂数字,而且应该在进行重要处理前,或使用了一定次数或时间后废除并重新生成,特别是改用SSL后更应如此。最后,一定要把应用会话管理的目标和实现机制记录下来,放到你的安全策略里。

【美国TechTarget独家授权】 Application development best practices

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值