Windows system >> Windowsの知識 >  >> コンピュータソフトウェアのチュートリアル >> サーバー技術 >> サーバーについて >> LNMP PHP環境でのセキュリティ強化設定の経験

LNMP PHP環境でのセキュリティ強化設定の経験

  

過去のランプWebサイトはlnmpに向かって発展しています私は何年もの間lnmpを使用しています。誰もが共有し、実際には、内容は同じ80%であり、ここではPHPのセキュリティ設定に焦点を当てる、内容を参照してください。

1. open_basedirを使用して仮想ホストのディレクトリ間アクセスを制限します[HOST = www.45it.com] open_basedir = /data /Site /www.45it.com /:/tmp /

[HOST = test.45it.com] open_basedir = /data /site /test.45it.com /:/tmp /

上記の設定は、www.45it.com配下のphpプログラムがopen_basedir設定の2つのディレクトリに制限されており、他のディレクトリにアクセスできないことを意味します。上記の設定をしていないと、test.45it.comとwww.45it.comのプログラムが相互にアクセスする可能性があり、いずれかのサイトに脆弱性がある場合、ハッカーはWebシェルに埋め込まれ、このサイトを通じて同じサーバにアクセスできます。他のサイト、最後にハングしたトロイの木馬

[warning]注意:例えば/tmpと書いた場合、あなたのサイトは/tmp123と/tmpで始まる他のディレクトリを持っています。また、php5.3はこの書き込みをサポートしていますが、5.2はサポートしていません。 [/warning]

2.安全でないPHP関数を無効にするdisable_functions = show_source、system、shell_exec、passthru、exec、popen、proc_open、proc_get_status、phpinfo

上記のphp関数の実行からphpを無効にするPhpプログラムは、ping、netstat、mysqlなどのLinuxコマンドを実行できます。システムに起動時のバグがある場合は、その結果を理解できます。

3.ソフトウェアセキュリティ情報に注意を払うLinuxカーネル、phpセキュリティに注意を払う

4. phpユーザー読み取り専用このメソッドは私の最も尊敬されるメソッドですが、実行する前にphpエンジニアと話し合う必要があります。たとえば、サイトwww.45it.comのrootユーザーとグループは誰もいなく、phpを実行しているユーザーとグループはphpuserです。ディレクトリのアクセス許可は755、ファイルのアクセス許可は644です。したがって、phpは読み取り専用であり、サイトディレクトリにファイルを書き込むことはできません。つまり、抜け穴があってもハッカーがバックドアを通過することはできず、トロイの木馬をハングさせることはさらに不可能になるので、プログラマにファイルキャッシュをnosqlメモリキャッシュに変更するように指示してください。インターフェースは別のサーバー(静的サーバー)に渡されます。

[warning]注意:ローカルキャッシュを生成するのは非常に悪い習慣ですファイルキャッシュを使用するのは遅くてディスクスペースを浪費する最も重要な点は通常の状況下ではサーバーを水平方向に拡張できないことです。

5. phpエラーログを閉じますdisplay_errors = on to display_errors = Off

プログラムにエラーが発生すると、パス、データベースアカウントのパスワードなど、詳細なエラーメッセージがすぐにユーザーに表示されます。侵入パスワードの注入は、基本的にこのエラーによって推測されます。本番環境では強力にシャットダウンされます。

6. php upload separationファイルをnfsなどのリモートサーバーにアップロードします。もちろん、あなたが書いたphpインターフェースを呼び出すこともできますアップロードの脆弱性があっても、ファイルは静的サーバーに転送されます。トロイの木馬などのファイルはまったく実行できません。

例:phpサイトwww.45it.com、ディレクトリ/data/site/www.45it.com静的ファイルサイトstatic.45it.com、ディレクトリ/data /site /static.45it.com

ファイルは/data/site/static.45it.comに直接転送されましたアップロードされたファイルはwww.45it.com経由ではアクセスできないstatic.45it.comを使用してのみアクセス可能しかし、static.45it.comはphpをサポートしていません。

7. php情報を閉じるexpose_php = onからexpose_php = Off

ハッカーがこのバージョンをターゲットにできないようにphpバージョン情報を簡単に明らかにしないでください。

8.リンクライブラリの動的ロードを無効にするdisable_dl = On; enable_dl = Offに変更;

9. open remote urlを無効にするallow_url_fopen = Onにしてallow_url_fopen = Offにします。

実際、これは実際には安全ではなく、Web侵入などの問題を引き起こすことはありませんが、これはパフォーマンスに大きな影響を与えます。セキュリティ上の問題は狭いと思います。

URLコンテンツ

$ data = file_get_contents(" http://www.baidu.com/");

次の方法があります。ローカルファイルのコンテンツ

$ data = file_get_contents(" 1.txt");

サイトのトラフィックが少なく、データベースが正常に機能しているが、Webサーバーの負荷が驚くほど高い場合この方法があるかどうかを直接確認してください。 phpエンジニアがリモートWebのコンテンツを取得する必要がある場合、私は彼らがcurlを使用することをお勧めします。

php curlの使い方前回の記事「PHPの使用」を確認してください。 curlは、file_get_contentsを置き換え、phpの下でcurlとfile_get_contentsのパフォーマンスを向上させます。

10. lnmpサイトでのphpセキュリティの終了は、当分の間行われており、フォローするのに問題があるでしょう。
zh-CN"],null,[1],zh-TW"]]]

Copyright © Windowsの知識 All Rights Reserved