Web服务器的安全和攻击防范 (五)
注意b的值必须以URL编码格式输入。要将字符串进行URL编码,可以使用一个简单的PHP程序,例如:
|
发送HTTP POST请求只是稍微复杂一点:现在应该在这个请求中包含一个合法的Content-Type头以及正确的内容长度字节数。下面是具体过程:
|
[page]
伪造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" (英语)
Tags:
作者:佚名评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论