ホームページ > バックエンド開発 > PHPの問題 > PHPのエスケープ関数とは何ですか?

PHPのエスケープ関数とは何ですか?

青灯夜游
リリース: 2023-03-08 19:12:02
オリジナル
2305 人が閲覧しました

php エスケープ関数には、1.addlashes() 関数、2.htmlspecialchars() 関数、3.htmlentities() 関数、4.mysql_real_escape_string() 関数、5.strip_tags() 関数が含まれます。

PHPのエスケープ関数とは何ですか?

#このチュートリアルの動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター

1.addlashes

addslashes は、SQL ステートメント内の特殊文字 (') をエスケープします。 (「)、()、 (NUL) 4 文字。

この関数は、DBMS に独自のエスケープ関数がない場合に使用されますが、DBMS に独自のエスケープ関数がある場合は、独自の関数を使用することをお勧めします。たとえば、MySQL には、エスケープするための mysql_real_escape_string 関数があります。 SQL。

PHP5.3 より前では、magic_quotes_gpc は主に $GET、$POST、 $COOKIE に対して addslashes 操作を実行するため、これらの変数に対して addslashes を繰り返し呼び出す必要はありません。そうしないと、double になります。 逃げる。

ただし、magic_quotes_gpc は PHP5.3 で廃止され、PHP5.4 以降は削除されましたが、最新バージョンの PHP を使用している場合は、この問題を心配する必要はありません。 tripslashes は、addslashes のエスケープ解除関数です。



2. htmlspecialchars

htmlspecialchars は、HTML 内のいくつかの特殊文字を HTML にエスケープします。 エンティティ (形式: &xxxx;) 形式。(&)、(')、(")、(<)、(>) の 5 文字が含まれます。

& (AND) => &

” (二重引用符) => " (ENT_NOQUOTES が設定されていない場合)
' (単一引用符) => ' (ENT_QUOTES が設定されている場合)
< (符号より小さい) => <
> (符号より大きい) => >
htmlspecialchars を使用して $GET、$POST、$COOKIE データをフィルタリングし、XSS を防ぐことができます。なお、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 タグを除外します。

推奨学習: 「

PHP ビデオ チュートリアル

以上がPHPのエスケープ関数とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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