ホームページ > バックエンド開発 > PHPチュートリアル > PHP ウェブサイトの一般的なセキュリティ脆弱性と防御方法_PHP チュートリアル

PHP ウェブサイトの一般的なセキュリティ脆弱性と防御方法_PHP チュートリアル

WBOY
リリース: 2016-07-13 09:47:05
オリジナル
841 人が閲覧しました

PHP Web サイトの一般的なセキュリティ脆弱性と防御方法

現在、PHP に基づいた Web サイト開発が主流となっており、この記事の著者は Web サイトの脆弱性を軽減することを目的として、PHP による Web サイトの攻撃とセキュリティの防止に焦点を当てています。

PHP ウェブサイトの一般的なセキュリティ脆弱性と防御方法_PHP チュートリアル

1. 一般的な PHP Web サイトのセキュリティ脆弱性

PHP の脆弱性に関しては、現在 5 つの一般的な脆弱性が存在します。セッションファイルの脆弱性、SQLインジェクションの脆弱性、スクリプトコマンド実行の脆弱性、グローバル変数の脆弱性、ファイルの脆弱性です。ここでは、これらの各脆弱性について簡単に紹介します。

1. セッションファイルの脆弱性

セッション攻撃は、ハッカーによって最も一般的に使用される攻撃方法の 1 つです。ユーザーが Web サイトにアクセスするとき、ページに入るたびにアカウント番号とパスワードを入力する必要がないように、PHP はユーザーの使用とアクセスを容易にするためにセッションと Cookie を設定します。

2. SQL インジェクションの脆弱性

ウェブサイトを開発する際、

プログラマーがユーザー入力データに対する総合的な判断を欠いていたり、フィルタリングが甘かったりすると、サーバーがユーザー情報のクエリなどの悪意のある情報を実行してしまいます。ハッカーは、悪意のあるプログラムから返された結果に基づいて、対応する情報を取得できます。これは Yuexingwei の SQL インジェクションの脆弱性です。

3. スクリプト実行の脆弱性

スクリプト実行の脆弱性の一般的な原因は、Web サイトの開発時にユーザーが送信した URL パラメーターをプログラマーがフィルタリングしていないことです。ユーザーが送信した URL には悪意のあるコードが含まれており、クロスサイト スクリプティング攻撃につながる可能性があります。以前の PHP Web サイトにはスクリプト実行の脆弱性がよく存在していましたが、PHP バージョンのアップグレードにより、これらの問題は軽減されるか、存在しなくなりました。

4. グローバル変数の脆弱性

PHP の変数は他の開発言語のように事前に宣言する必要がなく、使用時にシステムが自動的に作成し、変数の型を説明する必要がありません。コンテキストに基づいて変数の型を決定します。この方法は、プログラマがプログラミングでエラーを犯す可能性を大幅に減らすことができ、非常に使いやすいです。

5. ファイルの脆弱性 ファイルの脆弱性は通常、Web サイトの設計時に Web サイト開発者が外部から提供されたデータを適切にフィルタリングしていないことが原因で発生します。これにより、ハッカーが脆弱性を悪用して Web プロセス上で対応するコマンドを実行することが可能になります。 lsm.php に include($b.”/aaa.php”.) のようなコードが含まれている場合、ハッカーにとっては変数 $b を通じてリモート攻撃が実行され、これがハッカー自身のコードである可能性があります。ウェブサイト。 a.php include=http://lZ7.0.0.1/b.php をサーバーに送信し、b.php の命令を実行できます。

2. 一般的な PHP 脆弱性の予防策

1. セッション脆弱性の防止

前の分析から、最も一般的なセッション攻撃はセッション ハイジャックであることがわかります。つまり、ハッカーはさまざまな攻撃方法を通じてユーザーのセッション ID を取得し、攻撃されたユーザーの ID を使用して対応する Web サイトにログインします。このため、これを防ぐには次の方法があります。 まず、セッション ID を定期的に変更します。 セッション ID の変更は、PHP 独自の機能を使用して実現できます。 次に、セッションのデフォルト名を変更します。この変数は通常、Cookie に保存されます。名前を変更すると、ハッカーによる一部の攻撃をブロックできます。いわゆる透過性とは、作成に Cookie が使用されないことを意味します。 HTTP リクエストを使用する場合、セッション ID はリンクを使用して渡されます。4 番目の方法は、PHP.ini ファイルを操作して非表示のパラメータを渡すことです。たとえハッカーがセッション データを取得したとしても、関連するパラメータは隠蔽されます。はい、セッション ID 変数の値を取得することも困難です。

2. SQL インジェクションの脆弱性の防止

ハッカーは SQL インジェクションを実行する多くの方法を持っており、柔軟性があります。ただし、SQL インジェクションに共通しているのは、入力フィルタリングの脆弱性を利用することです。したがって、SQLインジェクションを根本的に防ぐためには、リクエストコマンド、特にクエリリクエストコマンドのフィルタリングを強化することが根本的な解決策となります。具体的には、次の点が含まれます。 まず、フィルタリング ステートメントがパラメータ化されます。つまり、ユーザー情報の入力は、ステートメントにユーザー入力を直接埋め込むのではなく、パラメーター化されたステートメントを通じて実現されます。 2 つ目は、Web サイトの開発時に解釈プログラムの使用をできるだけ少なくすることです。3 つ目は、Web サイトの開発時にこの方法を使用して、Web サイトのバグをできる限り回避することです。そうしないと、ハッカーがこの情報を使用する可能性があります。さらに、Web サイトの脆弱性をスキャンするには、専門的な脆弱性スキャン ツールを頻繁に使用する必要があります。

3. スクリプト実行の脆弱性の防止

ハッカーがスクリプト実行の脆弱性を利用して攻撃する手段は多様かつ柔軟です。この点で、ハッカーによるスクリプト実行の脆弱性の攻撃を効果的に防ぐには、複数の防御方法を組み合わせて使用​​する必要があります。ここでよく使われる方法は以下の4つです。 1 つは、実行可能ファイルのパスを事前に設定することです。これは、safe_moade_exec_dir によって実現できます。2 つ目は、通常、escapeshellarg 関数を使用してコマンド パラメータを処理することです。3 つ目は、システム独自の関数ライブラリを使用して外部コマンドを置き換えることです。

4. グローバル変数の脆弱性を防ぐ

PHPグローバル変数の脆弱性問題については、以前のPHPバージョンでもこのような問題がありましたが、PHPバージョン5.5にアップグレード後は、php.iniの設定とGPCへのruquest_orderの設定で解決できるようになりました。さらに、php.ini 設定ファイルで、Magic_quotes_runtime のブール値を設定して、外部引用符で囲まれたデータのオーバーフロー文字にバックスラッシュを追加するかどうかを設定できます。 Web サイトのプログラムがサーバーのどのような設定状態でも実行できることを保証するため。 get_magic_quotes_runtime を使用してプログラム全体の先頭で設定ステータスを検出し、手動で処理するかどうかを決定するか、set_magic_quotes_runtime(0) を使用して最初 (または自動エスケープが必要ないとき) で設定をオフにすることができます。

5. ファイルの脆弱性の防止

PHPファイルの漏洩については、サーバーの設定や構成で防ぐことができます。ここでの具体的な操作は次のとおりです。まず、PHP コード内のエラー プロンプトをオフにします。これにより、ハッカーがエラー プロンプトを通じてデータベース情報や Web ページ ファイルの物理パスを取得するのを防ぐことができます。次に、open_basedir を慎重に設定します。これは、外部でのファイル操作を禁止することを意味します。処理: これにより、ローカル ファイルまたはリモート ファイルが攻撃から保護されます。3 番目に、コマンドが実行されるのを防ぐために、safe-made をオンに設定します。ファイルのアップロードを標準化して禁止することで、PHP Web サイトのセキュリティ要素を効果的に向上させることができます。



www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/1029283.html技術記事 PHP Web サイトの一般的なセキュリティ脆弱性と防御方法 現在、PHP に基づいた Web サイト開発が現在の Web サイト開発の主流になっています。この記事の著者は、PHP Web サイトの攻撃とセキュリティ防御を検討することに焦点を当てています...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート