在開發web程式的時候,有時我們需要得到使用者是從什麼頁面連過來的,這就用到了referer。
它是http協議,所以任何能開發web程式的語言都可以實作,例如jsp中是:
request.getHeader("referer");
php是$_SERVER['HTTP_REFERER']。其他的我就不舉例了(其實是不會其他的語言)。
那它能幹什麼用呢?我舉兩個例子:
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