ホームページ  >  記事  >  バックエンド開発  >  PHP コード監査 - 2. PHP コード監査の PHP 環境の紹介

PHP コード監査 - 2. PHP コード監査の PHP 環境の紹介

不言
不言オリジナル
2018-04-04 14:39:231742ブラウズ

この記事の内容は、PHP 環境の紹介です。興味のある友人は参照してください。また、助けが必要な学生に参考にすることもできます。


コードは次のとおりです。異なる環境で実行すると、結果は大きく異なります。非常に高リスクの脆弱性が悪用される可能性があるのは、設定の問題である可能性があります。あるいは、脆弱性が見つかったために悪用できなかったのかもしれません。長期間にわたって成功するエクスプロイトコードを構築します。ただし、PHP のバージョンによって構成手順も異なります。新しいバージョンでは、一部の命令が追加または削除されたり、命令のデフォルト設定が変更されたりする場合があります。そのため、コードを監査する前に、PHP のあらゆる側面をよく理解しておく必要があります。バージョン内の構成ファイルのコア命令のみが、高品質の脆弱性を効率的にマイニングできます。

PHP_INI_*定数


定数PHP __INI__ USERPHP__INI__PERDIRPHP__INI__システムPHP__INI__ALLphp。 ini のみ
意味
この設定オプションはユーザーの PHP スクリプトに登録できますまたは Windows テーブルに設定します
この設定オプションは php.ini ..htaccess または http.conf で設定できます
この設定オプションは php.ini または http.conf で設定できます
この設定オプションはどこでも設定できます
この設定オプションは php.ini でのみ設定できます

PHP には何百もの設定ファイルの手順があるため、ここでは 1 つずつ紹介しません。この点に興味がある場合は、公式の PHP 設定ドキュメントで具体的な内容を確認してください: http://www.php。 net/manual/zh/ini.list.php

PHPの共通基本設定

(1) open_basedirの設定

open_basedirは、アプリケーションがアクセスできるディレクトリを制限することができます もちろん、いくつかのopen_basedirが設定されているかどうかを確認します。たとえば、Apache の php_admin_value、nginx+fcgi は conf を通じて制御されます。

(2)allow_url_fopenの設定

allow_url_fopen=ONの場合、PHPは操作のためにリモートファイルを読み取ることができ、攻撃者によって簡単に悪用されます。

(3)allow_url_includeの設定

allow_url_include=ONの場合、PHPはリモートファイルをインクルードすることができ、これにより重大な脆弱性が発生します。

(4)safe_mode_exec_dir設定

このオプションは、phpから呼び出せる外部コマンドのディレクトリを制御できます。phpプログラム内で呼び出される外部コマンドがある場合、外部コマンドのディレクトリを知ることでリスクを制御できます。プログラムの。

(5) magic_quote_gpc 設定

このオプションはパラメータで送信された特殊文字をエスケープできます。 magic_quote_gpc=ON に設定することをお勧めします

(6) register_globals 設定

このオプションをオンにすると、PHP が外部送信されます。変数はグローバル変数として登録され、その結果は非常に深刻です。

(7) セーフモード設定

セーフ_モードは PHP の重要なセキュリティ機能です。オンにすることをお勧めします

(8) session_use_trans_sid 設定

session_use_trans_sid が有効な場合、PHP はセッション ID を渡します攻撃者につながる URL 現在のセッションを簡単にハイジャックしたり、ユーザーをだまして攻撃者によって既に制御されている既存のセッションを使用させたりします。

(9) display_errors 設定

このオプションが有効な場合、PHP はすべてのエラーまたは警告情報を出力し、攻撃者はこの情報を使用して Web ルート パスなどの機密情報を取得できます。

(10) Expose_php 設定

Expose_php オプションが有効な場合、PHP の解釈によって生成されるすべての応答には、ホスト システムにインストールされている PHP のバージョンが含まれます。リモート サーバーで実行されている PHP のバージョンを知ることで、攻撃者はシステムに対する既知の漏洩方法を列挙することができ、攻撃が成功する可能性が大幅に高まります。

(11) magic_quotes_sybase (マジック引用符の自動フィルタリング)

magic_quotes_sybase コマンドは、特殊文字を自動的にフィルタリングするために使用されます。on に設定すると、magic_quotes_gpc=on の設定が上書きされます。つまり、gpc はtime =on で設定しても効果はありません。 このコマンドと gpc の共通点は、処理されるオブジェクトが同じであること、つまり、どちらも POSTGETCookie を処理することです。

(12) disable_functions (関数を無効にする)

正式な運用環境では、PHP をより安全に実行するために、disable_functions ディレクティブを使用して、一部の機密関数の使用を禁止することもできます。このディレクティブを使用して危険な関数を禁止する場合は、必ず dl() 関数を禁止リストに追加してください。これは、攻撃者が dl() 関数を使用してカスタム PHP 拡張機能をロードし、disable_function ディレクティブの制限を突破できるためです。

関連する推奨事項:

phpコード監査(1)-----デバッグ機能

以上がPHP コード監査 - 2. PHP コード監査の PHP 環境の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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