Set function for each array
Now I use:
<?php
$_POST = array_map(mysql_real_escape_string, $_POST);
$_GET = array_map(mysql_real_escape_string, $_GET);
$_COOKIE = array_map(mysql_real_escape_string, $_COOKIE);
$_REQUEST = array_map(mysql开发者_如何学Go_real_escape_string, $_REQUEST);
but if $_POST has multiple arrays ($_POST['s'][1]) then it doesn't work. How can I set function for each array?
<?php
function escape_recursive($item) {
return is_array($item) ?
array_map("escape_recursive", $item) :
mysql_real_escape_string($item);
}
$_POST = array_map("escape_recursive", $_POST);
// etc...
?>
But see DampeS8N's comment -- if you are doing this, you're doing security wrong...
You want to use a recursive function to overcome your problem like so:
function recursive_array_map($input){
if(is_array($input)){
return array_map('recursive_array_map',$input);
}
return array_map(mysql_real_escape_string, $input);
}
$_POST = recursive_array_map(mysql_real_escape_string, $_POST);
I just wrote this inhere so not sure if it actually works ;) Have a go at it!
精彩评论