function defend_xss($val){ return is_array($val) ? $val : htmlspecialchars($val);}function gpc($name,$w = 'GPC',$default = '',$d_xss=1){ global $curr_script; if($curr_script==ADMINCP){ $d_xss = 0; } $i = 0; for($i = 0; $i < strlen($w); $i++) { if($w[$i] == 'G' && isset($_GET[$name])) return $d_xss ? defend_xss($_GET[$name]) : $_GET[$name]; if($w[$i] == 'P' && isset($_POST[$name])) return $d_xss ? defend_xss($_POST[$name]) : $_POST[$name]; if($w[$i] == 'C' && isset($_COOKIE[$name])) return $d_xss ? defend_xss($_COOKIE[$name]) : $_COOKIE[$name]; } return $default;}
<?php$test = gpc('test','P','')$userid = @$db->result_first("select userid from user where username='$test'");....以下代码省略?>
いいえ!
特殊文字を使用して何もしていません '
できません!
特殊文字 '
function addslashes_array(&$array) { if(is_array($array)){ foreach($array as $k => $v) { $array[$k] = addslashes_array($v); } }elseif(is_string($array)){ $array = addslashes($array); } return $array;}
if(!@get_magic_quotes_gpc()){ $_GET = addslashes_array($_GET); $_POST = addslashes_array($_POST); $_COOKIE = addslashes_array($_COOKIE);}
一重引用符などの独自の関数変換を使用することを検討できます。 mysql として