PHP安全编程:cookie暴露导致session被劫持

不要轻易暴露你的敏感cookie数据
服务器君一共花费了283.191 ms进行了6次数据库查询,努力地为您提供了这个页面。
试试阅读模式?希望听取您的建议

使用Cookie而产生的一个风险是用户的cookie会被攻击者所盗窃。如果会话标识保存在cookie中,cookie的暴露就是一个严重的风险,因为它能导致会话劫持

PHP为你处理相关会话管理的复杂过程

最常见的cookie暴露原因是浏览器漏洞和跨站脚本攻击(见专题前几部分)。虽然现在并没有已知的该类浏览器漏洞,但是以往出现过几例,其中最有名的一例同时发生在IE浏览器的4.0,5.0,5.5及6.0版本(这些漏洞都有相应补丁提供)。

虽然浏览器漏洞的确不是web开发人员的错,但是你可以采取步骤以减轻它对用户的威胁。在某些情况下,你可能通过使用一些安全措施有效地消除风险。至少你可以告诉和指导用户打上修正漏洞的安全补丁。

基于以上原因,知道新的安全漏洞是很有必要的。你可以跟踪下面提供的几个网站和邮件列表,同时有很多服务提供了RSS推送,因此只要订阅RSS即可以得到新安全漏洞的警告。SecurityFocus网站维护着一系列软件漏洞的列表(http://online.securityfocus.com/vulnerabilities),你可以通过开发商、主题和版本进行检索。PHP安全协会也维护着SecurityFocus的所有最新通知。(http://phpsec.org/projects/vulnerabilities/securityfocus.html)

跨站脚本攻击是攻击者盗窃cookie的更为常见的手段。其中之一已在前面博文描述。由于客户端脚本能访问cookies,攻击者所要的送是写一段传送数据的脚本即可。唯一能限制这种情况发生的因素只有攻击者的创造力了。

防止cookie盗窃的手段是通过防止跨站脚本漏洞和检测导致cookie暴露的浏览器漏洞相结合。由于后者非常少见(此类漏洞将来也会比较罕见),所以它并不是需要关心的首要问题,但还是最好要紧记。

延伸阅读

此文章所在专题列表如下:

  1. PHP安全编程:register_globals的安全性
  2. PHP安全编程:不要让不相关的人看到报错信息
  3. PHP安全编程:网站安全设计的一些原则
  4. PHP安全编程:可用性与数据跟踪
  5. PHP安全编程:过滤用户输入
  6. PHP安全编程:对输出要进行转义
  7. PHP安全编程:表单与数据安全
  8. PHP安全编程:从URL的语义进行攻击
  9. PHP安全编程:文件上传攻击的防御
  10. PHP安全编程:跨站脚本攻击的防御
  11. PHP安全编程:跨站请求伪造CSRF的防御
  12. PHP安全编程:关于表单欺骗提交
  13. PHP安全编程:HTTP请求欺骗
  14. PHP安全编程:不要暴露数据库访问权限
  15. PHP安全编程:防止SQL注入
  16. PHP安全编程:cookie暴露导致session被劫持
  17. PHP安全编程:session固定获取合法会话
  18. PHP安全编程:session劫持的防御
  19. PHP安全编程:防止源代码的暴露
  20. PHP安全编程:留心后门URL
  21. PHP安全编程:阻止文件名被操纵
  22. PHP安全编程:文件包含的代码注入攻击
  23. PHP安全编程:文件目录猜测漏洞
  24. PHP安全编程:打开远程文件的风险
  25. PHP安全编程:shell命令注入
  26. PHP安全编程:暴力破解攻击
  27. PHP安全编程:密码嗅探与重播攻击
  28. PHP安全编程:记住登录状态的安全做法
  29. PHP安全编程:共享主机的源码安全
  30. PHP安全编程:更优的会话数据安全
  31. PHP安全编程:会话数据注入
  32. PHP安全编程:主机文件目录浏览
  33. PHP安全编程:PHP的安全模式

本文地址:http://www.nowamagic.net/librarys/veda/detail/2012,欢迎访问原出处。

不打个分吗?

转载随意,但请带上本文地址:

http://www.nowamagic.net/librarys/veda/detail/2012

如果你认为这篇文章值得更多人阅读,欢迎使用下面的分享功能。
小提示:您可以按快捷键 Ctrl + D,或点此 加入收藏

阅读一百本计算机著作吧,少年

很多人觉得自己技术进步很慢,学习效率低,我觉得一个重要原因是看的书少了。多少是多呢?起码得看3、4、5、6米吧。给个具体的数量,那就100本书吧。很多人知识结构不好而且不系统,因为在特定领域有一个足够量的知识量+足够良好的知识结构,系统化以后就足以应对大量未曾遇到过的问题。

奉劝自学者:构建特定领域的知识结构体系的路径中再也没有比学习该专业的专业课程更好的了。如果我的知识结构体系足以囊括面试官的大部分甚至吞并他的知识结构体系的话,读到他言语中的一个词我们就已经知道他要表达什么,我们可以让他坐“上位”毕竟他是面试官,但是在知识结构体系以及心理上我们就居高临下。

所以,阅读一百本计算机著作吧,少年!

《JavaScript高级程序设计(第2版)》 尼古拉斯·泽卡斯(Nicholas C.Zakas) (作者), 李松峰 (译者), 曹力 (译者)

《JavaScript高级程序设计(第2版)》在上一版基础上进行了大幅度更新和修订,融入了近几年来JavaScript应用发展的最新成果,几乎涵盖了所有需要理解的重要概念和最新的JavaScript应用成果。从颇具深度的JavaScript语言基础到作用域(链),从引用类型到面向对象编程,从极其灵活的匿名函数到闭包的内部机制,从浏览器对象模型(BOM)、文档对象模型(DOM)到基于事件的Web脚本设计,从XML(E4X)到Ajax及JSON,从高级前端开发技术到前沿的客户端存储,从最佳编程实践到即将成为现实的API,直至JavaScript未来的发展,全景式地展示了JavaScript高级程序设计的方方面面。

更多计算机宝库...