これで注射は防げますか?

WBOY
リリース: 2016-06-23 14:23:48
オリジナル
1110 人が閲覧しました

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);}
ログイン後にコピー


のコードをさらに 2 行追加することでこれを行うことはできますか?

一重引用符などの独自の関数変換を使用することを検討できます。 mysql として

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート