ホームページ >ウェブフロントエンド >jsチュートリアル >PHP セキュリティの向上: Modified_JavaScript スキルが必要な 8 つの PHP デフォルト設定
明らかに、PHP Mysql Apache は非常に人気のある Web テクノロジであり、この組み合わせは強力でスケーラブルであり、無料です。ただし、PHP のデフォルト設定は、すでにオンラインになっている Web サイトにはあまり適していません。デフォルトの設定ファイルを変更して、PHPのセキュリティポリシーを強化しましょう!
0x01: リモート URL ファイル処理機能を無効にします
fopen のようなファイル処理関数は、ファイルの rul パラメータを受け入れます (例: fopen('http://www.yoursite.com','r'))。この関数はリモート リソースに簡単にアクセスできます。ただし、これは非常に重要なセキュリティ上の脅威です。ファイル機能を制限するには、この機能を無効にすることをお勧めします。
0x02: グローバル変数の登録を無効にします
4.2.0 より前のバージョンでは、PHP は register_globals と呼ばれるグローバル変数を使用します。幸いなことに、この機能により、攻撃者がグローバル変数を簡単に操作できるようになります。 4.2.0 ではデフォルトで無効になっています。これは非常に危険なので、いかなる状況でも無効にする必要があります。一部のスクリプトでこの機能が必要な場合、そのスクリプトには潜在的なセキュリティ上の脅威があります。 pnp.ini を変更してこの機能を無効にします:
0x03: PHP の読み取りおよび書き込み操作を制限します
多くの Web 開発プロセスでは、php スクリプトは /var/www/htdocs/files などのローカル ファイル システムの読み取りおよび書き込みを行う必要があります。セキュリティを強化するために、ローカル ファイルの読み取りおよび書き込み権限を変更できます。 :
0x04: ポーズ制限
PHP の実行時間、メモリ使用量、データの投稿とアップロードを制限することが最善の戦略です。次のように設定できます。
0x05: エラー メッセージを無効にし、ログを有効にします
デフォルト設定では、PHP はアプリケーションの開発プロセス中にエラー メッセージをブラウザに出力します。このデフォルト設定は、ユーザーに次のようなセキュリティ情報を漏洩する可能性もあります。インストールパスとユーザー名。すでに開発されている Web サイトでは、エラー メッセージを無効にして、エラー メッセージをログ ファイルに出力することをお勧めします。
0x06: PHP ファイルを非表示
隠し PHP ファイルがない場合は、次のようなさまざまな方法でサーバーの PHP バージョンを取得できます。http://www.example.com/script.php?=PHPB8B5F2A0-3C92-11d3- A3A9- 4C7B08C10000
明らかに、ユーザーが Web サイトサーバーの PHP バージョンを直接取得できないようにする必要があります。幸いなことに、php.ini にはこの機能を無効にするスイッチがあります。
0x07: セーフモード構成
デフォルトでは、PHP はセーフ モードで設定できます。このモードでは、Apache はファイル、環境変数、バイナリ プログラムへのアクセスを禁止します。最大の問題は、ファイルの所有者のみがアクセスできることです。このプログラムを開発するために多くの開発者が協力している場合、この設定は現実的ではありません。また、他のプログラムが PHP ファイルにアクセスできないという問題もあります。ファイルを編集する場合、次の構成により、単一ユーザーではなくユーザー グループに対するファイルのアクセス許可を変更できます。
safe_mode_gid を有効にすることで、Apache を使用するこのグループは PHP ファイルにアクセスできるようになります。セーフ モードはバイナリの実行を防ぐのにも非常に効果的ですが、開発者は特定の状況下で一部のバイナリを実行できるようにしたい場合があります。これらの特殊なケースでは、バイナリ ファイルを (/var/www/binaries) などのディレクトリに配置し、次の設定を行うことができます:
最後に、次の設定を通じてサーバーの環境変数にアクセスし、「_」で区切られたプレフィックスを指定して、指定されたプレフィックスを持つ環境変数のみにアクセスできるようにします。
0x08: 特定のサフィックス
を持つファイルへのパブリック ユーザー アクセスを制限しますセキュリティ上の理由により、mysql 接続情報などの機密情報が含まれる .inc 接尾辞を持つファイルなど、特定の接尾辞名を持つ多くのファイルには、一般ユーザーはアクセスできません。すべてのユーザーがこの設定ファイルにアクセスできます。Web サイトのセキュリティを強化するには、..htaccess ファイルで次の設定を行う必要があります:
0x09: 概要
PHP のデフォルト設定は開発者向けであり、Web サイトが多数のユーザーを対象としている場合は、PHP を再設定することをお勧めします。