//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) {
}