在開發web程序的時候,有時咱們須要獲得用戶是從什麼頁面連過來的,這就用到了referer。
它是http協議,因此任何能開發web程序的語言均可以實現,好比jsp中是:
request.getHeader("referer");
response.sendRedirect(ref); javascript
js的話就是這樣作:javascript:document.referrer
那它能幹什麼用呢?我舉兩個例子:
1,防止盜連,好比我是個下載軟件的網站,在下載頁面我先用referer來判斷上一頁面是否是本身網站,若是不是,說明有人盜連了你的下載地址。
2,電子商務網站的安全,我在提交信用卡等重要信息的頁面用referer來判斷上一頁是否是本身的網站,若是不是,多是黑客用本身寫的一個表單,來提交,爲了能跳過你上一頁裏的javascript的驗證等目的。
使用referer的注意事項:
若是我是直接在瀏覽器裏輸入有referer的頁面,返回是null(jsp),也就是說referer只有從別的頁面點擊鏈接來到這頁的纔會有內容。
我作了個實驗,好比個人referer代碼在a.jsp中,它的上一頁面是b.htm,c.htm是一個帶有iframe的頁面,它把a.jsp嵌在iframe裏了。我在瀏覽器裏輸入b.htm的地址,而後點擊鏈接去c.htm,那顯示的結果是b.htm,若是我在瀏覽器裏直接輸入的是c.htm那顯示的是c.htm java