PHPのセキュリティは、開発者にとって大きな問題です。 PHP
は内部から信頼性の高いセキュリティを提供しますが、これらのセキュリティメカニズムを適切に実装するのは開発者の責任です。この記事では、Linux管理者向けのいくつかの PHP
セキュリティポイントを紹介します。これらの点は、あなたがあなたのWebアプリケーションを安全にし、それが長期的にうまく機能するのを保証するのを助けるでしょう。
始める前に、処理しているシステムを理解する必要があります。デモの目的では、Fedoraを使います。ただし、これらの点はUbuntuバージョンまたは他のLinuxディストリビューションにも当てはまります。詳細については、 OS
ディストリビューションのマニュアルを参照してください。
私たちのシステム環境におけるいくつかの重要なファイルを注意深く見てください。ファイルは次のようにするか、同じようにしてください。
これらのヒントは、SQLインジェクション、XSS、クロスサイトリクエストフォージェリ、eval()、ファイルアップロードなどの一般的な種類の攻撃からサイトを保護します。
1.不要なモジュールを削除します。
PHPにはPHPモジュールが組み込まれています。それらは多くのタスクに役立ちますが、すべてのプロジェクトに必要なわけではありません。次のコマンドを入力して、利用可能なPHPモジュールを確認してください。
#php– m
リストを見終わったら、不要なモジュールを削除することができます。モジュール数を減らすと、作業しているWebアプリケーションのパフォーマンスとセキュリティが向上します。
2. PHPの情報漏えいを制限します。
個人情報の漏洩キー情報は一般的です。たとえば、PHPはバージョンやサーバーにインストールされているという事実などの情報をリークします。これはexpose_phpコマンドで実行できます。リークを防ぐために、/etc /php.d /security.iniでこのコマンドをoffに設定する必要があります。
expose_php = Off
バージョンとそのステータスを知る必要がある場合は、Webサイトのアドレスに対して簡単なCurlコマンドを実行してこの情報を入手してください。
Curl– I http://www.livecoding.tv/index.php
前のコマンドは次の情報を返します。
HTTP /1.1 200 OK
X- Powered by:PHP /7.0.10
コンテンツタイプ:text /html; charset = UTF-8
3.リモートコードの実行を無効にします。
リモートでのコード実行は、PHPのセキュリティシステムにおける一般的なセキュリティの脆弱性の1つです。デフォルトでは、リモートコード実行はシステムで有効になっています。 "allow_url_fopen"コマンドはrequire、includeあるいは識別可能なURLのような関数が直接PHPファイルにアクセスすることを可能にします。リモートアクセスは、HTTPまたはFTPプロトコルを使用して行われます。これにより、システムがコードインジェクションのセキュリティ上の脆弱性から保護できなくなる可能性があります。
システムが安全でリモートコードの実行からリモートにあることを確認するには、次のようにこのコマンドを' Off'に設定します。
Allow_url_fopen = Off
allow_url_include = Off
4. PHPエラーを記録します。
Webアプリケーションのセキュリティを強化するもう1つの簡単な方法は、訪問者にエラーを表示しないことです。これにより、ハッカーが単にサイトのセキュリティを危険にさらすことがないようになります。 /etc/php.d/security.iniファイルを編集する必要があります。
display_errors = Off
この手順が完了したら、「開発者はエラーメッセージを使用してデバッグできますか?」開発者はlog_errorsコマンドを使用して使用できます。デバッグ用security.iniファイルでlog_errorsコマンドを' Onに設定するだけです。
log_errors =オン
error_log = /var /log /httpd /php_scripts_error.log
5.合理的なリソース管理。
リソースの制御はアプリケーションのセキュリティを確保するために重要です。適切な実行とセキュリティを確保するためには、PHPスクリプトの実行を制限する必要があります。さらに、要求データの解析に費やす時間を制限する必要があります。実行時間が制御されている場合は、それに応じてスクリプトが使用するメモリなどの他のリソースも設定する必要があります。 security.iniファイルを編集して、これらのメトリックをすべて管理できます。
#秒単位の設定
max_execution_time = 25
max_input_time = 25
memory_limit = 30M
6.危険なPHP関数を無効にする
PHPにはPHPが付属しています。開発には便利な機能ですが、ハッカーがWebアプリケーションに侵入するために使用できる機能も多数あります。これらの機能を無効にすると、全体的なセキュリティが向上し、危険なPHP機能の影響を受けなくなります。
これを行うには、まずphp.iniファイルを編集する必要があります。ファイル内に入ったら、disable_functionsコマンドを見つけて、内部の危険な機能を無効にします。これを行うには、以下のコードをコピーするか貼り付けてください。
disable_functions = exec、パススルー、
shell_exec、system、proc_open、popen、curl_exec、
curl_multi_exec、parse_ini_file、show_source
7.ファイルをアップロードします。
アプリでファイルをアップロードする必要がない場合は、ファイルをアップロードする機能を無効にするとセキュリティが向上します。ユーザーがファイルをアップロードできないようにするには、/etc /php.d /ディレクトリ内のsecurity.iniファイルを編集し、file_uploadsコマンドをOFFに設定するだけです。
file_uploads = Off
8.バージョンを最新の状態に保ちます。
開発者は年中無休24時間体制で、使用しているテクノロジにパッチを適用します。 PHPについても同じことが言えます。オープンソースコミュニティがあるので、パッチと修正は定期的にリリースされています。更新版はまた、初日の脆弱性およびその他のセキュリティの脆弱性に対するセキュリティパッチを提供します。アプリケーションのセキュリティに重点を置く場合は、常にPHPソリューションが最新のものであることを確認してください。さらに、他の関連技術のための最新のパッチが最大のセキュリティを保証します。
9.ファイルシステムへのアクセスを制御します。
デフォルトでは、PHPはfopen()などの関数を使用してファイルにアクセスできます。 open_basedirコマンドはアクセスを提供します。まず、open_basedirコマンドを常に/var /www /htmlディレクトリに設定します。他のディレクトリに設定すると、セキュリティ上の問題が発生する可能性があります。
open_basedir =' /var /www /html /'
10. POSTサイズを制御します。
最後のPHPのセキュリティポイントはPOSTサイズ機能を制御することです。 HTTP POST機能は、クライアントのブラウザを使用してWebサーバーにデータを送信します。たとえば、ユーザーが証明書をアップロードしてそれをWebブラウザに送信して処理することがあります。ある日、ハッカーが巨大なファイルを送信してサーバーリソースを浪費しようと試みるまで、すべてがスムーズに実行されます。これにより、サーバーがクラッシュしたり応答が遅くなったりする可能性があります。この脆弱性からサーバーを保護するためには、POSTサイズを設定する必要があります。 POSTサイズは/etc/php.d/security.iniファイルで設定できます。
post_max_size = 1k
まとめ
セキュリティは、Web開発者やLinux管理者にとって最も懸念される問題の1つです。上記の点を考慮すると、開発環境とPHP Webアプリケーションのセキュリティを強化する必要があります。重要なコンテンツを見逃していると思われる場合は、追加のメッセージを残してください。
(例えば、メッセージキュー、共有メモリ) IPC通信システムID値が指定されなければならない確立します。典型的には、ftok ID機能により得られた値。次のようにftokプロトタイプは次のとおりです
インターネット上のシステムでは、状況を明確にすることが重要です。ネットワークは安全ではありません。したがって、ファイアウォールを作成しても100%のセキュリティが保証されるわけではありませんが、それは
なぜプロセス優先権があるのでしょうか。 マルチタスクオペレーティングシステムが誕生したので、結局のところ、cpuを処理するプロセスの能力は人為的に制御しなければならない問題です。いくつかのプロセスは
でファイルを暗号化します。今日ますます注目を集めるネットワークセキュリティ問題において、どのように送信プロセスでUbuntuシステムデータのセキュリティを確保するのですか?この記事ではUbuntuシス