Web服務器的安全和攻擊防范(9)_Windows教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
偽造Web請求(三)
另外一種常見的錯誤是把內部應用的狀態數據通過< INPUT TYPE="HIDDEN" >標記從一個頁面傳遞到另一個頁面。把內部應用的狀態放到信任界限之外就如把應用的心臟挖出來放到了攻擊者的面前。對于如此缺乏安全保障的應用,任何想要摧毀它的攻擊者都可以輕易地引導該應用并得到任何想要的效果。應用的狀態應該通過會話變量保存在服務器上,永遠不應該跨越信任界限。所有的Web應用開發平臺都有這種機制。例如在PHP3中,PHPLIB可用于保存會話數據,PHP4使用的是session_*()調用,ASP提供Session對象,Cold Fusion提供幾種不同的會話變量。
Web應用不應該把任何來自信任界線之外的數據直接保存為會話變量:會話變量是可信任的變量,不應該用來保存不可信任的數據。通常,來自外面的數據(比如表單變量的數據)應該先傳入檢驗其合法性的函數。只有當檢驗函數表示表單提供的數據是安全的,才可以把表單數據復制到會話變量。Web應用應該把這種檢查集中到一起進行,應用的所有其余部分永遠不應該直接接觸表單變量,而是應該使用經過檢查且確認安全的會話數據。
參考:
另外一種常見的錯誤是把內部應用的狀態數據通過< INPUT TYPE="HIDDEN" >標記從一個頁面傳遞到另一個頁面。把內部應用的狀態放到信任界限之外就如把應用的心臟挖出來放到了攻擊者的面前。對于如此缺乏安全保障的應用,任何想要摧毀它的攻擊者都可以輕易地引導該應用并得到任何想要的效果。應用的狀態應該通過會話變量保存在服務器上,永遠不應該跨越信任界限。所有的Web應用開發平臺都有這種機制。例如在PHP3中,PHPLIB可用于保存會話數據,PHP4使用的是session_*()調用,ASP提供Session對象,Cold Fusion提供幾種不同的會話變量。
Web應用不應該把任何來自信任界線之外的數據直接保存為會話變量:會話變量是可信任的變量,不應該用來保存不可信任的數據。通常,來自外面的數據(比如表單變量的數據)應該先傳入檢驗其合法性的函數。只有當檢驗函數表示表單提供的數據是安全的,才可以把表單數據復制到會話變量。Web應用應該把這種檢查集中到一起進行,應用的所有其余部分永遠不應該直接接觸表單變量,而是應該使用經過檢查且確認安全的會話數據。
參考:
- http://www.koehntopp.de/kris/artikel/weBTune/
"Webserver verstehen und tunen" (德語) - http://www.koehntopp.de/php/
"de.comp.lang.php - H‰ufig gestellte Fragen" (德語) - http://www.insecure.org/nmap/
"NMAP Port Scanner" (英語) - http://ethereal.zing.org/
"Ethereal Network Monitor" (英語) - http://www.marko.net/cheops
"Ceops Network Mapper" (英語) - http://freshmeat.net/appindex/1998/04/06/891857252.html
"lsof - list open files" (英語)
"TCP/IP Illustrated, Volume 1: The Protocols" (英語)
W. Richard Stevens
Addison-Wesley
"Hacking Exposed - Network Security Secrets & Solutions" (英語)
McClure, Scambray and Kurtz
"Maximum Linux Security" (英語)
Anonymous
- http://phplib.netuse.de/
"A library for PHP application development" (英語)
相關Windows教程:
- 相關鏈接:
- 教程說明:
Windows教程-Web服務器的安全和攻擊防范(9)。