本站內容為本人所有,禁止未經同意恣意未具名轉載或修改原作內容轉發!

2010年4月30日 星期五

[PHP] 表單來源過濾


最近研究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 意見