PHP怎么过滤GET或者POST的参数?怎么样才能保证代码不被注入?
请问PHP怎么过滤GET或者POST的参数?防止js注入,或者一些html注入?请请提供代码参考?谢谢!
[解决办法]
直接查查 魔术转换 相关东西吧
不用去看wordpress了,学这么个东西还要去看wordpress,搞死人啊
[解决办法]
if (!get_magic_quotes_gpc())//如果没有开启的话
{
/****需要对这几个数组,遍历,注意数组多维的情况,addslashes($str)就可以
$_GET
$_POST
$_COOKIE
$_REQUEST
****/
}
if (!get_magic_quotes_gpc()) {
!empty($_POST) && Add_S($_POST);
!empty($_GET) && Add_S($_GET);
!empty($_COOKIE) && Add_S($_COOKIE);
!empty($_SESSION) && Add_S($_SESSION);
}
!empty($_FILES) && Add_S($_FILES);
function Add_S(&$array){
if (is_array($array)) {
foreach ($array as $key => $value) {
if (!is_array($value)) {
$array[$key] = addslashes($value);
} else {
Add_S($array[$key]);
}
}
}
}
<?php
if (!get_magic_quotes_gpc()){
foreach($_POST as $key => $value){
$_POST[$key] = addslashes($val);
}
foreach($_GET as $key => $value){
$_GET[$key] = addslashes($val);
}
}
?>
$str = "Is your name O'reilly?";
// 输出:Is your name O\'reilly?
echo addslashes($str);
//本人在 TP 框架中的过滤函数。
// Input 类是 TP 提供的。
function inputFilter($content)
{
if(is_string($content) ) {
return Input::getVar($content);
}
elseif(is_array($content)){
foreach ( $content as $key => $val ) {
$content[$key] = inputFilter($val);
}
return $content;
}
elseif(is_object($content)) {
$vars = get_object_vars($content);
foreach($vars as $key=>$val) {
$content->$key = inputFilter($val);
}
return $content;
}
else{
return $content;
}
}