ホームページ >バックエンド開発 >PHPチュートリアル >PHP_PHP チュートリアルでよく使用されるエスケープ関数

PHP_PHP チュートリアルでよく使用されるエスケープ関数

WBOY
WBOYオリジナル
2016-07-13 10:36:581421ブラウズ

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

www.bkjia.com

tru​​ehttp://www.bkjia.com/PHPjc/736834.html技術記事 1. addlashes addlashes は、(')、(")、()、(NUL) の 4 文字を含む、SQL ステートメント内の特殊文字をエスケープします。この関数は、DBMS に独自のエスケープ関数がない場合に使用されます。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。