今天發現A網站(a.xxx.com) 以及B網站(b.xxx.com)共用 COOKIES 的域名 xxx.com 以及存儲路徑為 / 出現了問題。 A 網站、B 網站的 SESSION 各自為政。因為在配置2個網站的 SESSION 使用了相同的 MEMCACHED 服務,所以一直以來登陸 A網站成功後,B網站自然就能獲取相關的SESSION 信息了(這是最簡單的一種2個網站共享SESSION的方法,還有一種就是走接口。多數目前的網站都使用了OAUTH協議)。並且 SESSION ID 在切換各網站時也沒有變化。因為之前升級過PHP版本和一些擴展模塊,所以檢查了這種 SESSION 相關的參數,發現2個網站的參數全部一直。
最後突然想到最近服務器裝了 SUHOSIN,一查發現是 SUHOSIN 的 cryptdocroot 配置項的問題。
suhosin.session.cryptdocroot
Type: Boolean
Default: On
Flag that decides if the transparent session encryption key depends on the Documentroot field.
==========
suhosin.cookie.cryptdocroot
Type: Boolean
Default: On
Flag that decides if the transparent cookie encryption key depends on [...]
大家都了解暴力破解帐号密码,但可能都忽略了暴力 SID 猜测进行入侵的手段。本短程序演示了,如何通过暴力猜测 SID 来进行入侵
用户帐号的手段。希望各人初学的 PHPer 能引起重视。选择一种快速的储存方式以及好的 SID 格式都是必要的。
PS:很多人将 UUID 作为 SID,但使用 UUID 也是不可靠的,他也不能防范这种猜测性的攻击。
http://www.ietf.org/rfc/rfc4122.txt
引用自 rfc4122:
========================
6. Security Considerations
Do not assume that UUIDs are hard to guess; they should not be used
as security capabilities (identifiers whose mere possession grants
access), for example. [...]
如果我们同时调用了多个页面(比如用IFRAME或用PHP程序输入图片),并且这些页面都使用了 SESSION 储存一些数据。
这样悲剧的事情就来了….
SESSION 的储存
默认情况下PHP-SESSION储存的时候,是将$_SESSION 数组的数据一起保存到文件中(当然可以配置 PHP.INI 到MEMCACHE或自己通过 session_set_save_handler 储存到其他地方)。然后使用 SID 作为 KEY,自然 VALUE就是$_SESSION 的数据。
悲剧的问题
如果我们同时执行了3张网页,这3张网页网页都使用了PHP-SESSION 保存数据:
1. 保存 $_SESSION['test1'] = ‘test1′;
2. 保存 $_SESSION['test2'] = ‘test2′;
3. 保存 $_SESSION['test3'] = ‘test3′;
我们理想的结果是 test1、test2、test3 在任何情况下都应该被保存。但事实不是这样的。
假如他们是同时读取的,并且 test3 是在最后被保存。那么 SESSION 保存的数据就不是 test1、test2、test3 这三个数据了而是 test3这一个数据。导致这个问题的原因是,SESSION储存的时候是将数据一起全部保存的。于是导致了覆盖。
由于服务端执行顺序的不同,也可能得到这样的结果:
Array ( [test2] => [...]
實用技術博客,分享、討論實際工作中的一些問題和經驗
茉莉花~
有那麽一堆人,把道德和文化都丟棄了,還自稱5千年文明,可笑。
歡迎一起討論 OSX 下的程序開發、軟件應用等;WINDOWS 下的競技遊戲近期评论
- nroe 发表在《It’s Brain 后台管理UI》
- 桉叶 发表在《It’s Brain 后台管理UI》
- Paul 发表在《留言板》
- nroe 发表在《ZendStudio OSX 下啟用 JAVAHL》
- nroe 发表在《MAC 下使用 MACPORT 安裝 PHP-FPM》
标签
.SVN 80后 AJAX Android APACHE array aspersa AWE41AP BSD BUFFLAO character CHROME dns freebsd GOOGLE Javascript MAC MACPORT MAIL MMSEG4N MongoDB MySQL NAS NGINX NODEJS OSX OSX Password-Strength phing PHP Replica-SET REWRITE SESSION SHEEL SHELL TIMEMACHINE UPLOAD XDEBUG ZendFramework 中国特色 域名 存储过程 安全 搞笑 漫画日和链接表
- 01. Eric's linux and nginx 杨振亮一直从事linux 负载均衡,存储等工作
- 01. 叶茂盛 YeMaosheng’s Blog(软件开发、系统管理)
- 01. 威同学的博客 疯狂痴呆傻,美甘苦涩禅
- 01. 翡翠’s 板报 纪录自己的生活、工作和学习
- 01. 阿冬的 I-T 厨房的博客
- 01. 风雪之隅 PHP 的文章比较多,偶然看看[推荐下]
- 02. 新普IT教育(培训)
- 02. 若寒小记
- 10. Ayou 服务器系统架构分析日志 网易 Ayou,博客很简洁,内容精彩
- 10. Cats Who Code a website dedicated to those who create and maintain websites
- 10. David Walsh Blog MooTools Dev, JavaScript FanBoy, CSS Experimenter, and TPS Reporter
- 10. Web App Security
- 10. 大罗-PHP/Python博客
- 99. CodeColorer wordpress 代码加亮插件
- 99. stackoverflow.com 专业技术问答网站
文章归档
- 2012 年五月 (1)
- 2012 年三月 (1)
- 2012 年二月 (17)
- 2012 年一月 (6)
- 2011 年十二月 (9)
- 2011 年十一月 (7)
- 2011 年九月 (4)
- 2011 年八月 (11)
- 2011 年七月 (27)
- 2011 年六月 (20)
- 2011 年五月 (9)
- 2011 年四月 (10)
- 2011 年三月 (3)
- 2011 年二月 (3)
- 2011 年一月 (22)
- 2010 年十二月 (18)
- 2010 年十一月 (2)
- 2010 年十月 (6)
- 2010 年九月 (18)
- 2010 年八月 (6)
- 2010 年七月 (3)
- 2010 年六月 (2)
- 2010 年四月 (1)
- 2010 年三月 (7)
- 2010 年二月 (11)
- 2010 年一月 (8)
- 2009 年十二月 (4)
- 2009 年十一月 (4)
- 2009 年十月 (4)
- 2009 年八月 (5)
- 2009 年七月 (21)
