ホームページ >バックエンド開発 >PHPチュートリアル >PHPインジェクショントピック
php インジェクション トピック
。
私を最も愛してくれる両親と、私を助けてくれたすべての人にこの文書を捧げたいと思います。 */
/*@@@@@@@@@@@@@@@@@@@@@ xfocus は画像
のアップロードをサポートしていないため、http://www にアクセスできます。 .54hack.info/txt/php.pdfこの記事の PDF ドキュメントをダウンロードします (画像付き)*/
Php インジェクション攻撃は現在最も人気のある攻撃手法であり、その強力な柔軟性は多くの黒人ファンを魅了しています。
前回の「php セキュリティとインジェクション特別トピック」では、Lin.linx は主に PHP プログラムのさまざまな脆弱性について説明し、PHP + mysql インジェクションの問題についても説明しましたが、インジェクションの問題は比較的少なかったです。
OK、今回は php + mysql インジェクションについて詳しく説明します。必ず満載の内容で家に帰ってもらいます。 !)。
この記事は主におかずのためのものです。すでに老鳥になっている人には退屈に感じるかもしれませんが、注意深く見る限り、興味深いものがたくさんあります。
この記事を読んだ後は、次のことだけを理解する必要があります。
1. php+mysql 環境の構築方法を理解する CD には、構築に関する関連記事が含まれています。 php+mysql 環境の構築についてよくわからない場合は、まずこの記事もお読みください。前回紹介した話題。
2. 主に php.ini と httpd.conf を使用して、php と Apache の構成を一般的に理解します。この記事では、主に php.ini の構成を使用します。安全上の理由から、通常は php.ini でセーフ モードをオンにします。つまり、safe_mode = On にします。もう 1 つは、PHP 実行エラーを返す display_errors です。これは多くの有用な情報を返すため、オフにする必要があります。 ,
つまり、display_errors = offにします。エラー表示をオフにすると、PHP関数の実行エラー情報がユーザーに表示されなくなります。
PHP 設定ファイル php.ini には、非常に重要な設定オプション magic_quotes_gpc もあります。上位バージョンのデフォルトは、オリジナルのアンティークレベルの PHP のみで、デフォルト設定は magic_quotes_gpc=Off ですが、これはアンティークです。 . 人が使っているものもあるよ!
php.ini で magic_quotes_gpc=On にするとどうなりますか? パニックにならないでください。空は落ちません。送信された変数内のすべての ' (一重引用符)、" (二重引用符)、(バックスラッシュ)、および null 文字をバックスラッシュを含むエスケープ文字に変換するだけです。たとえば、' は ' になり、\ に変更されます。多くの場合、文字タイプにはバイバイと言わなければなりません
でも、落胆しないでください。まだ良い対処法がありますので、読み続けてください ! 3. 私たちは php 言語についてある程度の知識を持っています。 SQL ステートメントは非常に単純なので、まだ再充電する時間です
magic_quotes_gpc=Off の場合に何が起こるかを見てみましょう。その後、対処方法を見つけます。 magic_quotes_gpc=On の状況
1: magic_quotes_gpc=Off
Magic_quotes_gpc=Off の場合のインジェクション攻撃は非常に安全ではないと言われていますが、新しいバージョンではデフォルトで
magic_quotes_gpc=On も許可されています。
vbb フォーラムのようないくつかのプログラムもありますが、magic_quotes_gpc=On に設定しても、エスケープ文字を自動的に削除してチャンスを与えることができます。
magic_quotes_gpc=Off は依然として非常に人気があります
ここで、mysql+php インジェクションを構文、インジェクションポイント、インジェクションタイプの側面から詳しく説明します
A: MYSQL 構文から始めましょう
1 。まずはmysqlの構文、勉強が苦手な子向けの補習です~_~
1) select
SELECT [STRAIGHT_JOIN] [SQL_SMALL_RESULT]
select_expression,...
[INTO {OUTFILE} 'file_name ' export_options ]
[FROM table_references
[WHERE where_定義]
[GROUP BYcol_name,...]
[ORDER BY {unsigned_integer | DESC],...]
]
これらは一般的に使用されるものです, select_expression は取得する列を指します。後で where を使用して条件を制限できます。また、into outfile を使用して選択結果をファイルに出力することもできます。もちろん、select を使用して直接出力することもできます
mysql> select 'a';
+---+
| a |
+---+
|セット内の 1 行 (0.00 秒)
詳細については、mysql 中国語マニュアルのセクション 7.12 を参照してください
以下にいくつかの使用法を示します
最初にコードを見てください
このコードは検索に使用されます