ホームページ >バックエンド開発 >PHPチュートリアル >PHP_PHP チュートリアルでよく使用されるエスケープ関数
1.addslashes
addslashes は、(')、(")、()、(NUL) の 4 文字を含む SQL ステートメント内の特殊文字をエスケープします。ただし、この関数は DBMS に独自のエスケープ関数を持ちません。たとえば、MySQL には SQL をエスケープするための mysql_real_escape_string 関数があり、これは主に $GET で使用されていたことに注意してください。 $POST と $COOKIE に対する操作なので、これらの変数に対して addslashes を繰り返し呼び出す必要はありません。そうしないと二重エスケープが行われます。ただし、magic_quotes_gpc は PHP5.3 で廃止され、PHP5.4 以降では削除されています。最新バージョンの PHP では、この問題について心配する必要はありません。Stripslashes は、addslashes のエスケープ関数です。2. htmlspecialchars
htmlspecialchars は、HTML エンティティ (形式: &xxxx;) にエスケープします。 、(')、(")、(<)、(>)の5文字。
& (AND) => &
” (二重引用符) => " (ENT_NOQUOTES が設定されていない場合)' (一重引用符) => ' (ENT_QUOTES が設定されている場合)
> (大なり記号) => >
htmlspecialchars を使用して $GET、$POST、$COOKIE データをフィルタリングできます。 htmlspecialchars 関数は、セキュリティ上のリスクがあると考えられる HTML 文字のみをエスケープすることに注意してください。HTML でエスケープできるすべての文字をエスケープしたい場合は、htmlentities を使用してください。 htmlspecialchars_decode は htmlspecialchars のデコード関数です。
3. htmlentities
htmlentities は、HTML 内のエスケープ可能なコンテンツを HTML エンティティにエスケープします。 html_entity_decode は htmlentities のデコード関数です。
4. mysql_real_escape_string
mysql_real_escape_string は、MySQL ライブラリ関数 mysql_real_escape_string を呼び出して (x00)、(n)、(r)、()、(')、(x1a) をエスケープします。つまり、バーの前にバックスラッシュを追加します。 () SQL インジェクションを防ぐため。データベース データを読み取るときにエスケープを解除するためにストリップスラッシュを呼び出す必要はないことに注意してください。これらのバックスラッシュはデータベースが SQL を実行するときに追加され、バックスラッシュはデータがデータベースに書き込まれるときに削除されるためです。は元のデータであり、前にバックスラッシュはありません。
5.strip_tags
strip_tags は NUL、HTML、PHP タグを除外します。
6. 結論
PHP 独自のセキュリティ機能では XSS を完全に回避することはできません。HTML Purifier を使用することをお勧めします。
http://www.bkjia.com/PHPjc/736834.html