ホームページ >バックエンド開発 >PHPチュートリアル >php はいくつかの危険な機能を無効にします

php はいくつかの危険な機能を無効にします

WBOY
WBOYオリジナル
2016-06-23 13:47:07942ブラウズ

passthru()
関数の説明: exec() と同様に、外部プログラムを実行し、出力をエコーすることができます。
危険レベル: 高

exec()
機能の説明: 外部プログラム (UNIX シェルや CMD コマンドなど) の実行を許可します。
危険度: 高

assert()
関数の説明: デフォルト値に従い、プログラムの実行中にassert()を呼び出して式を判断すると、evalと同様にfalseが発生してもプログラムは実行を継続します。 ( ) も同様ですが、 eval($code_str) は PHP エンコーディング仕様に準拠した $code_str のみを実行します。 Assert の使い方はもう少し詳しく説明します。
危険レベル: 高

system()
機能の説明: passthru() と同様に、外部プログラムを実行し、出力をエコーすることができます。
危険レベル: 高

chroot()
機能の説明: 現在の PHP プロセスの作業ルート ディレクトリを変更できます。システムが CLI モード PHP をサポートしている場合にのみ機能し、この機能は Windows システムには適用されません。
危険レベル: 高

chgrp()
機能説明: ファイルまたはディレクトリが属するユーザー グループを変更します。
危険レベル: 高

chown()
関数の説明: ファイルまたはディレクトリの所有者を変更します。
危険レベル: 高

shell_exec()
機能説明: シェルを通じてコマンドを実行し、実行結果を文字列として返します。
危険レベル: 高

proc_open()
関数の説明: コマンドを実行し、読み取りと書き込みのためにファイル ポインターを開きます。
危険レベル: 高

ini_restore()
機能の説明: PHP 環境設定パラメーターを初期値に復元するために使用できます。
危険レベル: 高

dl()
関数の説明: PHP の実行中に (起動時ではなく) PHP 外部モジュールをロードします。
危険度: 高

readlink()
関数の説明: シンボリックリンクが指すターゲットファイルの内容を返します。
危険レベル: 中

symlink()
機能説明: UNIX システムにシンボリック リンクを作成します。
危険レベル: 高

popen()
機能の説明: コマンドは、popen() のパラメータを介して渡され、popen() によって開かれたファイルに対して実行されます。
危険レベル: 高

stream_socket_server()
機能の説明: インターネットまたは UNIX サーバー接続を確立します。
危険レベル: 中

pfsockopen()
機能の説明: インターネットまたは UNIX ドメインでソケット永続接続を確立します。
危険レベル: 高

putenv()
関数の説明: PHP の実行時にシステムの文字セット環境を変更するために使用されます。 5.2.6 より前の PHP バージョンでは、この関数を使用してシステムの文字セット環境を変更し、sendmail コマンドを使用して特別なパラメータを送信し、システム SHELL コマンドを実行できます。
危険レベル: 高

変更方法:
/etc/php.ini ファイルを開き、
disable_functions を見つけて次のように変更します: disable_functions=passthru,exec,assert,system,chroot,chgrp,chown,shell_exec,proc_open,ini_restore 、dl、readlink、symlink、popen、stream_socket_server、pfsockopen、putenv
ああ、eval を無効にすることはできません。php Suhosin を使用する必要があります。

無効化されたメソッドは、実際には、curl_exec()、fopen()、file_get_contents() などもいくつかありますが、使用する必要があります。実際のプロジェクトでは無効にできないため、無効にすることはできません。
nginx の場合、次のように、一部の静的ファイル パスでの php の実行を制限できます (ディレクトリを独自の静的ファイル ディレクトリに変更します):

          <ol>              <li>location ~ /(style|html|cache|config|js|css|image|log|images|uploads|upload|attachments|templets)/.*\.(php|php5)?$ {</li>              <li> deny all;</li>              <li>}</li>          </ol>

こうすることでセキュリティが向上し、将来さらに追加する予定です。仕事で忙しくなります。

詳細: http://www.webyang.net/Html/web/article_125.html

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