ホームページ >php教程 >php手册 >phpのdaddslashes()とsaddslashes()の違いの分析

phpのdaddslashes()とsaddslashes()の違いの分析

WBOY
WBOYオリジナル
2016-06-13 11:56:501055ブラウズ

//GPC フィルタリングは、SQL インジェクション攻撃を防ぐために、$_GET、$_POST、$_COOKIE 内の特殊文字を自動的にエスケープします。
$_GET = maddslashes($_GET)
$_POST = sawdslashes($_POST ; ( $string, $force = 0, $strip = FALSE) {
//文字列または配列が強制されるか削除されるか

//マジックリファレンスがオンになっていない場合、または $force が 0 でない場合 if(! MAGIC_QUOTES_GPC || $force) { if(is_array($string)) { //配列の場合、この関数をループします foreach($string as $key => $val) { $string[$key] = godslashes($val, $force);

}

} else {
//マジックリファレンスがオンまたは $force が 0 の場合
//以下は 3 つのメタ演算子です。$strip が true の場合、stripslashes を実行してバックスラッシュ文字を削除し、次に addslashes を実行します。
//$strip が true の場合、つまり、最初にバックスラッシュ文字を削除してから、$_GET としてエスケープします。 ,$ _POST、$_COOKIE、$_REQUEST $_REQUEST 配列には、最初の 3 つの配列の値が含まれます
//ここでバックスラッシュを削除して $string をエスケープする必要があるのはなぜですか。バックスラッシュが 2 つある場合があります。stripslashes は余分なバックスラッシュを除外します。例:saddslashes function sawdslashes($string) { if(!MAGIC_QUOTES_GPC){
if(is_array($string)) { //エスケープが配列の場合、配列内の値を再帰的に変換する 意味
foreach( $string as $key => $val) {
$string[$key] = sawdslashes($val);
}
} else {
$string =addslashes($string); /一重引​​用符 (')、二重引用符 (")、バックスラッシュ () および NUL (NULL 文字) をエスケープします。
}
return $string;
}else{
return $string;



重要なことは次のとおりです:
saddslashes はすべてのデータをエスケープできます



コードをコピーします

コードは次のとおりです:


functionsaddslashes($string) {
if(is_array($string)) {
foreach($string as $key => $val) {

$string[ $key] = saddslashes($val);
}
} else {
$string = addslashes($string)

}

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。