PHP安全対策5個

1751 ワード

長年、PHPは安定した、安価なWebアプリケーションベースのプラットフォームとして機能してきました.多くのWebベースのプラットフォームのように、PHPも外部攻撃を受けやすい.開発者、データベース・アーキテクチャ、システム管理者は、PHPアプリケーションをサーバに導入する前に、予防措置を取らなければなりません.ほとんどの予防措置は、数行のコードやアプリケーションの設定を少し調整することで完了します.#1:インストールスクリプトの管理開発者がサードパーティ製アプリケーションのPHPスクリプトをインストールしている場合、アプリケーション全体のワークコンポーネントをインストールし、アクセスポイントを提供します.ほとんどのサードパーティ製パッケージでは、インストール後にディレクトリに含まれるインストールスクリプトを削除することをお勧めします.しかし、開発者はインストールスクリプトを保持し、作成することができます.htaccessファイルは、管理アクセスディレクトリを制御します.
AuthType Basic

AuthName “Administrators Only”

AuthUserFile /usr/local/apache/passwd/passwords

Require valid-user

保護されたディレクトリにアクセスしようとすると、ユーザー名とパスワードの入力を要求するプロンプトが表示されます.パスワードは、指定したpasswordsファイルのパスワードと一致する必要があります.#2:ヘッダファイルは多くの場合、開発者はアプリケーションに分散されたいくつかのスクリプトを1つのスクリプトに含めることができます.これらのスクリプトには、元のページのコードに単一のファイルを統合する「include」コマンドが含まれます.「include」ファイルにユーザー名、パスワード、データベースアクセスキーなどの機密情報が含まれている場合、このファイルの拡張子は、典型的な「.inc」拡張子ではなく「.php」と命名する必要があります.「.php」拡張により、phpエンジンがファイルを処理し、不正なアクセスを防止できるようにします.#3:MD 5 vs.SHA場合によっては、ユーザーは最終的に自分のユーザー名とパスワードを作成しますが、サイト管理者は通常、フォームから送信されたパスワードを暗号化し、データベースに保存します.ここ数年、開発者はMD 5(メッセージ要約アルゴリズム)関数を使用して128ビットの文字列パスワードに暗号化しました.今日、多くの開発者がSHA-1(セキュアハッシュアルゴリズム)関数を使用して160ビットの文字列を作成しています.#4:自動グローバル変数php.iniファイルに含まれる設定をregister_globalsと呼びます.Pサーバはregister_に従いますglobalsの設定では、サーバ変数とクエリー文字列にグローバル変数が自動的に作成されます.サードパーティ製のパッケージをインストールするとき、例えばコンテンツ管理ソフトウェア、JoomlaやDrupalのように、インストールスクリプトはユーザーにregister_を起動します.globalsは「閉じる」に設定されています.設定を「閉じる」に変更すると、許可されていないユーザーが変数名を推測したり、パスワードを検証したりしてデータにアクセスできないことを確認できます.#5:初期化変数と値多くの開発者は、時間の制限によって気が散るか、努力が足りないため、インスタンス化変数が値を与えないトラップに落ちています.認証中の変数は、ユーザーログインプログラムが開始される前に値があるはずです.この簡単な手順では、認証プログラムまたはアクセスサイト内の権限のない領域を迂回することを防止できます.