|
发表于 2006-4-21 20:15:04
|
显示全部楼层
冷眼看web2.0
<p>一个很简单的例子,说明安全问题:<br /><?php<br />$url = $_POST['url'];<br />$query = @http_build_query($_POST);<br />$content_length = strlen($query);<br />$option = array('http' => array('method' => 'POST' ,<br /> 'header' => "Content-type: application/x-www-form-urlencoded\r\n" . <br /> "Content-length: $content_length\r\n",<br /> 'content' => $query<br /> )<br /> );<br />$context = stream_context_create($option);<br />$handle = @fopen($url, 'rb' , false , $context);<br />@stream_filter_append($handle , "string.strip_tags" , STREAM_FILTER_READ);<br />@echo stream_get_contents($handle);<br />?><br />这个例子模拟浏览器将客户端post过来的数据反post到post中的url字段中的地址去,并把获得的结果去除html标签输出<br /><br />问题出在那里了?<br />如果客户端的表单中填写的不是一个网址怎么办,比如说$_SERVER[PHP_SEF],呵呵,哭了。此外,即使运行不正常(比如说url不支持post),但它仍然是安全的。</p> |
|