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程序本身調用的
相關文章
相關標籤/搜索