安全培訓中提到可以通過referer判斷安全性,hackbar中也有一個enable referer的選項,則,這個referer到底是個什么角色?
(以下是搜集的一些資料整合,鏈接均放到底部,不再一一注明)
1、打開httpfox抓包插件,在百度中搜索126.com,搜索項中點擊網站入口,通過抓包工具,查看http請求
在http請求的Headers部分可見Referer.
Referer http://www.baidu.com/s?tn=98835442_hao_pg&ie=utf-8&f=3&wd=126.com&oq=126.&bs=126.com&rsv_bp=1&inputT=5799&rsp=0
Http協議頭中的Referer主要用來讓服務器判斷來源頁面, 即用戶是從哪個頁面來的,通常被網站用來統計用戶來源,是從搜索頁面來的,還是從其他網站鏈接過來,或是從書簽等訪問,以便網站合理定位.
Referer有時也被用作防盜鏈, 即下載時判斷來源地址是不是在網站域名之內, 否則就不能下載或顯示,很多網站,如天涯就是通過Referer頁面來判斷用戶是否能夠下載圖片.
當然,對於某些惡意用戶,也可能偽造Referer來獲得某些權限,在計網站時要考慮到這個問題.
還可用做電子商務網站的安全,在提交信用卡等重要信息的頁面用referer來判斷上一頁是不是自己的網站,如果不是,可能是黑客用自己寫的一個表單,來提交,為了能跳過你上一頁里的javascript的驗證等目的。
但是注意不要把Rerferer用在身份驗證或者其他非常重要的檢查上,因為Rerferer非常容易在客戶端被改變。
(火狐的一個插件RefControl修改Referer引用)
對瀏覽器來說,一般以下幾種情況是不會發送Referer,因為可能有潛在的安全問題:
1.用戶手動輸入網址或是從收藏夾/書簽中訪問. 2.頁面從Https跳轉到Http;應該是處於安全考慮,該點在RFC-2616中有說明;主流瀏覽器均遵守這個規則,比如IE、FF;但默認情況下Https到Https是會發送Referer的 安全問題在於有可能把地址中含有的一些關於用戶的敏感信息發送到其他惡意網站上. 3、由於FF提供了很強大的自定義參數設置功能,所以我們可以通過about:config頁面修改以下兩個選項的默認設置: network.http.sendRefererHeader (default=2) 設置Referer的發送方式,0為完全不發送,1為只在點擊鏈接時發送,在訪問頁面中的圖像什么的時候不發送,2為始終發送。