Session固定攻击

攻击者预先设定session id,让合法用户使用这个session id来访问被攻击的应用程序,一旦用户的会话ID被成功固定,攻击者就能够经过此session id来冒充用户访问应用程序。php

举例

防范方法

  • 按期更改session id
session_regenerate_id(TRUE);    //删除旧的session文件,每次都会产生一个新的session id。默认false,保留旧的session
  • 更改session的名称
    • session的默认名称是PHPSESSID,此变量会保存在cookie中, 若是攻击者不抓包分析,就不能猜到这个名称,阻挡部分攻击
session_name("mysessionid");
  • 关闭透明化session id
    • 透明化session id指当浏览器中的 http请求 没有使用cookie来制定session id时,sessioin id使用连接来传递
int_set("session.use_trans_sid", 0);
  • 只从cookie检查session id
int_set("session.use_cookies", 1);  //表示使用cookies存放session id
int_set("session.use_only_cookies", 1); //表示只使用cookies存放session id
  • 使用URL传递隐藏参数
$sid = md5(uniqid(rand()), TRUE));
$_SESSION["sid"] = $sid;    //  攻击者虽然能获取session数据,
                            //  可是没法得知$sid的值,只要检查sid的值,
                            //  就能够确认当前页面是不是web程序本身调用的
相关文章
相关标签/搜索