当前位置: 首页 > 图文教程 > 服务器 > 安全防护 > Web服务器的安全和攻击防范 (五)

安全防护
服务器安全设置(十六)
服务器安全设置(十七)
服务器安全设置(十八)
服务器安全设置(十九)
服务器安全设置(二十)
服务器安全设置(二十一)
服务器安全设置(二十二)
Windows Server 2003 虚拟主机的安全配置
Win2000 Server入侵监测
Web服务器的安全和攻击防范 (一)
Web服务器的安全和攻击防范 (二)
Web服务器的安全和攻击防范 (三)
Web服务器的安全和攻击防范 (四)
Web服务器的安全和攻击防范 (五)
安全配置和维护Apache WEB Server (上)
安全配置和维护Apache WEB Server (下)
安全性与IIS (一)
安全性与IIS (二)
安全性与IIS (三)
安全性与IIS (四)

安全防护 中的 Web服务器的安全和攻击防范 (五)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-29   浏览: 83 ::
收藏到网摘: n/a

伪造Web请求(二)

  注意b的值必须以URL编码格式输入。要将字符串进行URL编码,可以使用一个简单的PHP程序,例如:



kris@valiant:~/www < cat urlencode.php#! /home/kris/bin/php -q< ?php print urlencode($argv)."n";? >kris@valiant:~/www < ./urlencode.php "this is a test"this+is+a+test

  发送HTTP POST请求只是稍微复杂一点:现在应该在这个请求中包含一个合法的Content-Type头以及正确的内容长度字节数。下面是具体过程:



kris@valiant:~/www < telnet valiant 80Trying 193.102.57.3...Connected to valiant.koehntopp.de.Escape character is '^]'.POST /~kris/test.php HTTP/1.0Host: valiant.koehntopp.deReferer: http://www.attacker.com/die_sucker_die.htmlContent-Type: application/x-www-form-urlencodedContent-Length: 16b=this+is+a+testHTTP/1.1 200 OKDate: Sat, 08 Apr 2000 06:55:11 GMTServer: Apache/1.3.9 (Unix) (SuSE/Linux) PHP/4.0RC2-devmod_ssl/2.4.7 OpenSSL/0.9.4X-Powered-By: PHP/4.0RC2-devConnection: closeContent-Type: text/htmlThe value of b is this is a testThe value of HTTP_REFERER ishttp://www.attacker.com/die_sucker_die.htmlConnection closed by foreign host.

伪造Web请求(三)

  另外一种常见的错误是把内部应用的状态数据通过< INPUT TYPE="HIDDEN" >标记从一个页面传递到另一个页面。把内部应用的状态放到信任界限之外就如把应用的心脏挖出来放到了攻击者的面前。对于如此缺乏安全保障的应用,任何想要摧毁它的攻击者都可以轻易地引导该应用并得到任何想要的效果。应用的状态应该通过会话变量保存在服务器上,永远不应该跨越信任界限。所有的Web应用开发平台都有这种机制。例如在PHP3中,PHPLIB可用于保存会话数据,PHP4使用的是session_*()调用,ASP提供Session对象,Cold Fusion提供几种不同的会话变量。

  Web应用不应该把任何来自信任界线之外的数据直接保存为会话变量:会话变量是可信任的变量,不应该用来保存不可信任的数据。通常,来自外面的数据(比如表单变量的数据)应该先传入检验其合法性的函数。只有当检验函数表示表单提供的数据是安全的,才可以把表单数据复制到会话变量。Web应用应该把这种检查集中到一起进行,应用的所有其余部分永远不应该直接接触表单变量,而是应该使用经过检查且确认安全的会话数据。

  参考: