php設置cookie為httponly防止xss攻擊


 

什么是XSS攻擊?

XSS攻擊(Cross Site Scripting)中文名為跨站腳本攻擊,XSS攻擊時web中一種常見的漏洞。通過XSS漏洞可以偽造目標用戶登錄,從而獲取登錄后的賬號操作。

網站賬號登錄過程中的簡單步驟

web網頁中在用戶登錄的時候,通過表單把用戶輸入的賬號密碼進行后台數據庫的驗證,驗證通過后利用session會話進行用戶登錄后的判別是否登錄,在session的這個過程中服務器會在服務器中寫入一個文件並記錄sessionid,然后也會在瀏覽器中設置cookie,保存sessionid,服務器和客戶端之間利用這個sessionid進行通信識別。如果客戶端發送sessionid給服務器服務器沒有找到,則說明服務器中的這個文件已經過期刪除了。那用戶這邊就需要重新登錄了。

XSS攻擊的流程

思路:通過獲取目標用戶登錄后的sessionid,保存到自己的電腦,然后在自己的電腦上設置獲取到的sessionid進行賬號登錄后的操作。通過sessionid偽造請求登錄,直接跳過賬號密碼登錄操作就能進去。

比如:
給目標用戶發送一個有吸引力的郵件,郵箱中包含一個鏈接,當用戶點擊鏈接跳轉到一個偽造的頁面,這個偽造的頁面中包含了獲取目標用戶瀏覽器中cookie的javascript代碼,獲取到cookie中的sessionid后再傳送到攻擊者的服務器中;或者在站點中的可插入數據的地方進行在html中寫行內的javascript代碼執行操作(< IMG SRC="jav ascript:alert('XSS');" >;);還可以當在一個公共wifi環境下,進行可賬號登錄操作,wifi路由器的管理員可以通過抓包工具抓包直接抓包查看到你的sessionid,所以不要在公共wifi下進行敏感操作,是很不安全的。

提高安全性的設置

方法一:在php.ini配置文件中進行cookie只讀設置的開啟

#搜索session.cookie_httponly =
session.cookie_httponly = On

方法二:在php代碼頂部設置
<?php
ini_set("session.cookie_httponly", 1);
#(php5.1以前版本設置方法:header("Set-Cookie: hidden=value; httpOnly");)
?>

 

原文地址:http://www.zixuephp.net/article-304.html
原文標題:php設置cookie為HttpOnly防止XSS攻擊

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM