Rumah >pembangunan bahagian belakang >tutorial php > PHP如何过滤GET或者POST的参数?如何样才能保证代码不被注入
PHP怎么过滤GET或者POST的参数?怎么样才能保证代码不被注入?
请问PHP怎么过滤GET或者POST的参数?防止js注入,或者一些html注入?请请提供代码参考?谢谢!
<br /> <br /> if (!get_magic_quotes_gpc())//如果没有开启的话<br /> {<br /> /****需要对这几个数组,遍历,注意数组多维的情况,addslashes($str)就可以<br /> $_GET<br /> $_POST<br /> $_COOKIE<br /> $_REQUEST<br /> ****/<br /> }<br /> <br />
<br /> if (!get_magic_quotes_gpc()) {<br /> !empty($_POST) && Add_S($_POST);<br /> !empty($_GET) && Add_S($_GET);<br /> !empty($_COOKIE) && Add_S($_COOKIE);<br /> !empty($_SESSION) && Add_S($_SESSION);<br /> }<br /> !empty($_FILES) && Add_S($_FILES);<br /> <br /> function Add_S(&$array){<br /> if (is_array($array)) {<br /> foreach ($array as $key => $value) {<br /> if (!is_array($value)) {<br /> $array[$key] = addslashes($value);<br /> } else {<br /> Add_S($array[$key]);<br /> }<br /> }<br /> }<br /> }<br />
<?php<br /> if (!get_magic_quotes_gpc()){<br /> foreach($_POST as $key => $value){<br /> $_POST[$key] = addslashes($val);<br /> }<br /> foreach($_GET as $key => $value){<br /> $_GET[$key] = addslashes($val);<br /> }<br /> }<br /> ?>
$str = "Is your name O'reilly?";<br /> <br /> // 输出:Is your name O\'reilly?<br /> echo addslashes($str);
<br> //本人在 TP 框架中的过滤函数。<br> // Input 类是 TP 提供的。<br> function inputFilter($content)<br> {<br> if(is_string($content) ) {<br> return Input::getVar($content);<br> }<br> elseif(is_array($content)){<br> foreach ( $content as $key => $val ) {<br> $content[$key] = inputFilter($val);<br> }<br> return $content;<br> }<br> elseif(is_object($content)) {<br> $vars = get_object_vars($content);<br> foreach($vars as $key=>$val) {<br> $content->$key = inputFilter($val); <div class="clear"> </div>