cookie_httponly
1.設置方式:
在php代碼的最開始的地方 設置php.ini 的配置ini_set(“session.cookie_httponly”, 1);//需要安裝php的session擴展
或者直接到php.ini文件中設置 Session.cookie_httponly=1;
(init_set在當前php程序中設置有效 程序結束後失效)
2. 作用
預防xss攻擊 (使用js惡意獲取 網站用戶的sessionId, 冒充用戶身份,請求網站,進行惡意操作,造成用戶信息的泄露和用戶財產損失)
舉例子: 某用戶登錄某A網站,網站中存在該用戶的賬號密碼,網站中彈出一個惡意框框,該用戶點擊跳入到另一個網站B, B網站會通過js獲取該用戶攜帶進來的sessionId和A網站的地址, B網站就可以通過sesssionId獲取冒充該用戶的身份、請求和操作A網站,造成用戶信息泄露。
3. 原理
cookie_httponly 故名思議 獲取cookie只能通過http請求獲取, 所以上面例子中通過js獲取cookie的信息是被禁止的,只能通過ajax請求服務器時纔可以獲取到cookie中的sessionId。從而預防了xss攻擊。
(等同於 header(“Set-Cookie: hidden=value; httpOnly”);
在客戶端請求服務器時 服務器把http header頭部信息返回給客戶端、通知客戶端瀏覽器cookie只能由http協議訪問。)