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

PHP でよく使用されるエスケープ文字関数

Jul 25, 2016 am 08:54 AM

この記事では、PHP で一般的に使用される文字エスケープ関数とセキュリティ関数を紹介します。これらの関数は、SQL インジェクションなどの最も一般的な攻撃方法をフィルタリングするために使用できます。

このセクションの内容: PHPエスケープ文字関数の使用法。

1.スラッシュを追加します addlashes は、(')、(")、()、(NUL) の 4 文字を含む、SQL ステートメント内の特殊文字をエスケープします。この関数は、DBMS に独自のエスケープ関数がない場合に使用されますが、DBMS に独自のエスケープ関数がある場合に使用されます。たとえば、MySQL には SQL をエスケープするための mysql_real_escape_string 関数があり、PHP5.3 より前では、magic_quotes_gpc がデフォルトで有効になっており、主に $GET、$POST、および $COOKIE に対してラッシュを実行することに注意してください。ただし、最新バージョンの PHP を使用している場合、magic_quotes_gpc は PHP5.3 で廃止され、PHP5.4 以降は削除されました。この質問はaddslashesのエスケープ関数です。

2.html特殊文字 htmlspecialchars は、(&)、(‘)、(")、(

) の 5 文字を含む、HTML 内のいくつかの特殊文字を HTML エンティティ (形式: &xxxx;) にエスケープします。 & (AND) => & " (二重引用符) => " (ENT_NOQUOTES が設定されていない場合) ' (シングルクォーテーション) => ' (ENT_QUOTES が設定されている場合) (大なり記号) => > htmlspecialchars を使用すると、$GET、$POST、$COOKIE データをフィルタリングして XSS を防ぐことができます。 htmlspecialchars 関数は、セキュリティ上のリスクがあると考えられる HTML 文字のみをエスケープすることに注意してください。HTML でエスケープできるすべての文字をエスケープしたい場合は、htmlentities を使用してください。 htmlspecialchars_decode は htmlspecialchars のデコード関数です。

3.htmlエンティティ 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 は、NUL、HTML、および PHP タグをフィルターで除外します。

6. 結論 PHP に付属するセキュリティ機能では XSS を完全に回避することはできません。HTML Purifier を使用することをお勧めします。

PHPエスケープの使い方を詳しく解説

PHPのデータのマジッククオート関数magic_quotes_gpcまたはmagic_quotes_runtime オンに設定すると、引用するデータに一重引用符、二重引用符、およびバックスラッシュが含まれる場合、バックスラッシュが自動的に追加され、記号が自動的に変換され、データ操作が正しく行われるようになります。 2 つの違い: magic_quotes_gpc アクションの範囲は次のとおりです。 WEB クライアント サーバー。 いつ: リクエストは、たとえばスクリプトの実行時などに開始されます。 magic_quotes_runtime スコープの範囲: ファイルから読み取られたデータ、exec() の実行結果、または SQL クエリから取得されたデータ。 アクションのタイミング: スクリプトが実行状態で生成されたデータにアクセスするたび。 見てわかるように magic_quotes_gpc の設定値は、Get/Post/Cookie によって取得されるデータに影響します。 magic_quotes_runtime の設定値は、ファイルから読み取られるデータ、またはデータベース クエリから取得されるデータに影響します。 関連付けるいくつかの関数: set_magic_quotes_runtime(): magic_quotes_runtime 値を 0=off に設定します。デフォルトの状態は、echo phpinfo() を通じて確認できます。 get_magic_quotes_gpc(): magic_quotes_gpc 値を表示します。0=off.1=on get_magic_quotes_runtime(): magic_quotes_runtime 値を確認してください。 0=オフ、1=オン。 set_magic_quotes_gpc() 関数がないことに注意してください。つまり、プログラム内で magic_quotes_gpc の値を設定することはできません。 2 つの値の設定の問題により、プログラミング中に混乱が生じたり、余分なエスケープが追加されたりする可能性があります。この場合は、プログラムの開始時またはデフォルト設定で設定および判断する必要があります。 両方の値がオフになっています。エスケープ部分はプログラムによって実行されます。 データが正常に挿入されることを保証するために、データを読み取るときは通常、addslashes を使用して処理し、多くの場合、stripslashes を使用して追加されたバックスラッシュを削除します。 PHPの同様の文字変換関数

addslashes は、によって指定された定義済み文字の前にバックスラッシュを追加します。 ストリップスラッシュは、addslashes() 関数によって追加されたバックスラッシュを削除します htmlspecialchars は、いくつかの事前定義された文字を HTML エンティティに変換します htmlspecialchars_decode は、いくつかの事前定義された HTML エンティティを文字に変換します html_entity_decode() は HTML エンティティを文字に変換します htmlentities() 文字を HTML エンティティに変換します


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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPロギング:PHPログ分析のベストプラクティス PHPロギング:PHPログ分析のベストプラクティス Mar 10, 2025 pm 02:32 PM

PHPロギングは、Webアプリケーションの監視とデバッグ、および重要なイベント、エラー、ランタイムの動作をキャプチャするために不可欠です。システムのパフォーマンスに関する貴重な洞察を提供し、問題の特定に役立ち、より速いトラブルシューティングをサポートします

Laravelでフラッシュセッションデータを使用します Laravelでフラッシュセッションデータを使用します Mar 12, 2025 pm 05:08 PM

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

PHPのカール:REST APIでPHPカール拡張機能を使用する方法 PHPのカール:REST APIでPHPカール拡張機能を使用する方法 Mar 14, 2025 am 11:42 AM

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Laravelテストでの簡略化されたHTTP応答のモッキング Laravelテストでの簡略化されたHTTP応答のモッキング Mar 12, 2025 pm 05:09 PM

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

Codecanyonで12の最高のPHPチャットスクリプト Codecanyonで12の最高のPHPチャットスクリプト Mar 13, 2025 pm 12:08 PM

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

PHPにおける後期静的結合の概念を説明します。 PHPにおける後期静的結合の概念を説明します。 Mar 21, 2025 pm 01:33 PM

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。 フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。 Mar 28, 2025 pm 05:12 PM

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

See all articles