作者dinos (守护神)
看板PHP
标题Re: 安全的SESSION
时间Thu Nov 1 13:28:48 2007
※ 引述《buganini (霸格尼尼)》之铭言:
: http://140.122.126.12/~buganini/dev/session.php
: 使用方法很简单
: 把session_start()换成include上面这个档案即可
请参考「3957 8/20 DarkKiller R: [分享] 显示ISP名称 (不安全)」这一篇
你应该要告诉使用者把你的程式码复制下来另存新档,而不是丢一句
「换成include上面这个档案即可」
另外,若是使用者的 register_globals=On,我相信那些 notice 是有很大运作的空
间
要嘛做成 function/class,不然就避免使用未初始化的变数
: FEATURE:
: 1. 每次连线同步更新token
: 提昇抵抗hijack的能力
: 相当於TCP每次seq number的更新
: (one time password)
: 2. 比TCP更好的抵抗能力
: TCP在被hijack之後 基本上只能hijack回去
: 否则就束手无策了
: 这个script在被hijack之後
: hijacker更新了server端的token
: victim如果再连线 因为持有旧的token
: 所以整个session会被毁掉
: victim需要重新建立session
: 而这个hijack就失效了
: 其实TCP应该也可以关闭连线
: 可是因为TCP的fixed token(ip-port pair)
: 是有规则的 所以容易被DOS
: NOTICE:
: 如果一页有多个frame里面连到的页面都有include
: 这个script的时候
: 或着快速refresh
: 或browser有开pipelining
: 会发生饼乾赛跑...
: 这些request会拿着同一个token去连线
: 但经过一个连线之後token就会换掉
: 然後session就炸了...
: 适度提高$tolerance可以减少这个问题
: 但设太高会失去抵抗hijack的能力
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.158.15