最近研究Ajax之餘,
卻發現一些ajax可能造成的安全性問題,
就拿表單來源來說,
就是一個非常致命危險~
如果不限制表單來源,
可能會讓你的網站成為有心人事的釣魚目標~
不僅會讓帳號資料外洩,
甚至可能會賠上網站信譽呢~
而目前看到許多解決辦法,
今天就提出其中一個簡單的方法囉~
首先要先了解的部分就是以下兩個函數囉:
1.$_SERVER['HTTP_REFERER'] 取得上一頁面的來源網址
ex:http://www.abc.com/post.htm
2.$_SERVER['HTTP_HOST'] 取得Server端的網名(IP位址)
ex: www.cde.com
透過以上兩項函數,
我們將能做到表單來源判別~
從上面兩個函數的回傳值範例,
大家有看見判別點了嘛?
對!
就是在域名(or IP)位置~
我們只要去比對來源的表單的域名位置是否與SERVER端的域名相同,
就能過濾非法來源表單囉!
不過講那麼多,
還是直接來個範例給大家看比較實在~XD
---------------------------
程式碼:
----------------------------
- $http_p=explode("/",$_SERVER['HTTP_REFERER']);//取得上一頁面的域名(or IP)
- if($_SERVER['HTTP_HOST']==$http_p[2]){
- //通過
- }else{
- //未通過
- }
不過這個方法仍有安全上的風險,
因為HTTP_REFERER是有可能被偽造的,
因此建議再配合其他的篩選機制才能有效防堵~
不過還是得說~
套一句阿堂老師的老話,
[安全只有相對,沒有絕對]
就看你的系統所需的安全層級來決定吧!
沒有留言:
Write 意見