すべての PHP ソース コード Web サイトは環境を構成する必要があります。統合環境を使用するか手動で構築するかにかかわらず、php.ini
で構成されているこれらの機能に注目した人はほとんどいないかもしれません。多くの Web サイトphp.ini ファイルを設定するとき、私はいつもオンラインでチュートリアルを探し、追加および削除する手順を教えてくれますが、実際には Web サイトのセキュリティ問題を引き起こす可能性のある設定が 2 つあります。
php.ini
ファイルにセキュリティ上の問題があるなんて言う人もいるでしょう? もしかしたら、ハイカーが私の php.ini を攻撃するかもしれません。
ファイルは利用できませんか?
これは真実ではありませんが、実行モードはハイカーにウィンドウを提供します。以下の設定手順を参照してください。
windows
システムに PHP
をインストールする場合を例として、すべてのバージョンの php.ini
ファイルの設定は次のようになります。まず、公式 Web サイトから必要な PHP バージョンをダウンロードし、解凍して名前を変更します。
php7.4
がサーバーの D ドライブのルート ディレクトリにインストールされていると仮定します。PHP プログラムの非スレッド セーフ (NTS) バージョンをダウンロードし、解凍して名前を変更します。 「php」フォルダにコピーし、Dドライブのルートディレクトリにコピーします。
D:\php
にある php.ini-development
ファイルを開き、コピーを作成して名前を php.ini
に変更して開きます。 D:\php\php.ini
ファイルの完全な構成プロセスは次のとおりです。
1. short_open_tag = Off
を
short_open_tag = On
に変更します。この変更の効果は、一部の Web サイト テンプレート ファイルで次のようなものが使用されることです。 ? >この種の PHP コードは、コードが正常に実行されることを保証できます。この種のコードは、ecshop、dedecms、WordPress などのテンプレートでも一般的です。
2. expose_php = On
を
expose_php = Off
に変更します。Web サイトのセキュリティのため、他のユーザーが特定のターゲットを攻撃できないように、php のバージョン番号を表示することは禁止されています。 php のバージョン。Web サイトを悪用します。 Web サイトによっては、Web マスター ツールを使用してチェックすると、使用している Web サーバーと PHP のバージョンが一目でわかります。もちろん、ハイカーは特定の PHP バージョンの脆弱性について知っています。バージョン番号を隠すことはできませんが、問題は解決すると言われれば、そうなるでしょう。ハイキングの難易度は上がります。
3. 次のコードを見つけます
; On windows: ; extension_dir = "ext"
ここで、extension_dir の前のセミコロンを削除し、以下に示すように ext を PHP のインストール パスに変更します。 PHP を D ドライブにインストールしたため、スラッシュを逆に書かないように注意してください。
extension_dir = "D:\php\ext"
4. max_execution_time = 30
を見つけて、数値 30
を 300
または 1200
に変更します。この機能は、各スクリプトの実行時間の最大値です。デフォルトは 30 秒です。これにより、ネットワーク速度やサーバー アドレス (外部ホストなど) によって接続が常にタイムアウトする可能性があるという問題が解決されます。
5. ; cgi.force_redirect = 1
を検索し、先頭のセミコロンを削除し、数値 1
を 0
に変更します。 cgi.force_redirect = 0
は、php ファイルを実行するためのリダイレクトを閉じることを意味します。セキュリティ上の理由から、他のユーザーが次のようなトロイの木馬をアップロードして実行することを防ぎます: あなたの Web サイトの url/as=あなたの Web サイト url /sdf/muma .php
、このようなリダイレクトされた PHP ファイルは実行可能です。この設定を 0 に変更すると、このタイプのリダイレクトされた PHP ファイルは実行されなくなります。
これは、一部の Web サイトが常にハングする理由でもあります。この修正後は、Web サイトのフロント デスクにセキュリティ上の脆弱性があり、ハイカーによってトロイの木馬ファイルがアップロードされた場合でも、トロイの木馬ファイルはこのように実行しないので、役に立ちません。
6. コード を見つけます; cgi.fix_pathinfo=1
セミコロンを削除し、数値 1
を 0
に変更します。不正なphpファイルの解析を禁止する機能で、例えば/a.jpg/1.php
のような画像の下にあるphpファイルは不正で、0に設定すると実行できなくなります。このような画像を装ったトロイの木馬をアップロードするファイルは昔から存在しており、実行することは禁止されており、たとえトロイの木馬をアップロードしても実行できない設定になっているため役に立ちません。
7. コード fastcgi.impersonate = 1
を見つけて、先行するセミコロンを削除します。 iis
または nginx
が fastcgi
メソッドを使用して php ファイルを解析する機能で、オンになっていないと php プログラムを実行できません。オンにする必要はありません。
8. cgi.rfc2616_headers = 0
を検索し、セミコロンを削除して、0
を 1
に変更します。これは、どのヘッダーを使用するかを PHP に指示することを意味します。このように: HTTP/1.1
。
9. upload_tmp_dir =
を検索し、前のセミコロンを削除し、次のようにパスを追加します:
upload_tmp_dir = D:\php\temp
は、ファイルをアップロードするための一時ディレクトリを意味し、によってアップロードされたファイルを保存するために使用されます。 Web サイトの一時仮想ディレクトリですが、実際にはファイルはアップロードされません。
10. 次のコードを 1 行に 1 つずつ検索し、その前のセミコロンを削除します (セミコロンはコメントを表します。つまり、コメントは有効になりません。コメントがあれば有効になります)。削除されました):
extension=bz2 extension=curl extension=gd2 extension=gmp extension=mbstring extension=php_mysql.dll extension=mysqli extension=pdo_mysql
11. date.timezone =
を検索し、セミコロンを削除して次のように変更します:
date.timezone = Asia/Shanghai
注意大小写,意思是格式化时间,默认使用北京时间(东8区),这样可以使服务器时间和程序的时间一致,否则可能你发文章显示的时时间会和实际时间不一样,如果不设置时间可能会相差8小时,也可以设置为date.timezone = PRC
,设置时区为中国时区,PRC是中国时区的简称。
以上就是完整的php.ini文件配置,真的有3处设置和网站的安全有关系,由于这个文件一般只会设置一次,之后都不会去更改,所以有的问题也不容易被发现。
本文来自:https://baijiahao.baidu.com/s?id=1660324056472707757&wfr=spider&for=pc
相关推荐:
以上がphp.ini 構成には、Web サイトのセキュリティ上の問題を引き起こす不適切な設定が 3 つあります。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。