问题:希望确保应用不会受到会话固定攻击,即攻击者强制用户使用一个预定义的会话id.

解决方案:要求使用会话cookie但会话标识符不追加到URL,另外要频繁地生成新会话ID:

 1 <?php
 2 ini_set('session.use_only_cookies',true);
 3 //防止会话固定攻击
 4 session_start();
 5 
 6 //每隔30秒 生成一个新的PHPSESSID
 7 if (!isset($_SESSION['generated']) || $_SESSION['generated'] < (time() - 30) ) {
 8     echo "create<br/>";
 9     //生成一个新的session id
10     session_regenerate_id();
11     $_SESSION = [
12         'user'=>'lemon',
13         'generated'=>time()
14     ];
15 
16 } else {
17     echo "ok<br/>";
18     print_r($_SESSION);
19 }

  这种方案基本上可以消除会话固定攻击的风险,攻击者很难得到一个合法的会话id,因为会话id会频繁改变。

posted on 2016-05-31 10:46  睡着的糖葫芦  阅读(500)  评论(0编辑  收藏  举报