php防止会话固定攻击

Posted 睡着的糖葫芦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php防止会话固定攻击相关的知识,希望对你有一定的参考价值。

  问题:希望确保应用不会受到会话固定攻击,即攻击者强制用户使用一个预定义的会话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会频繁改变。

以上是关于php防止会话固定攻击的主要内容,如果未能解决你的问题,请参考以下文章

PHP 防止会话固定/劫持

PHP安全编程

ASP.NET 中的会话固定

会话固定攻击 - yxcms session固定漏洞

Spring Security---会话固定攻击防御

02-xss固定会话攻击