検索
ホームページバックエンド開発PHPチュートリアルLinux 管理者が知っておくべき推奨される PHP セキュリティ ポイントのトップ 10

PHP は、最も広く使用されているスクリプト プログラミング言語の 1 つです。市場シェアは、その支配的な地位を雄弁に物語っています。 PHP 7 がリリースされたという事実により、このプログラミング言語は現在の開発者にとってさらに魅力的なものになっています。いくつかの変更にもかかわらず、多くの開発者は PHP の将来について懐疑的です。理由の 1 つは PHP のセキュリティです。

Linux 管理者は、PHP のセキュリティに関するトップ 10 のポイントを知っておく必要があります
PHP は、最も広く使用されているスクリプト プログラミング言語の 1 つです。市場シェアは、その支配的な地位を雄弁に物語っています。 PHP 7 がリリースされたという事実により、このプログラミング言語は現在の開発者にとってさらに魅力的なものになっています。いくつかの変更にもかかわらず、多くの開発者は PHP の将来について懐疑的です。理由の 1 つは PHP のセキュリティです。

PHP のセキュリティは開発者にとっての主な懸念事項です。 PHP は内部から外部まで強固なセキュリティを提供しますが、これらのセキュリティ メカニズムを正しく実装できるかどうかは開発者の責任です。この記事では、Linux 管理者向けの PHP セキュリティ ポイントをいくつか紹介します。これらのポイントは、Web アプリケーションを保護し、長期的に適切に機能することを保証するのに役立ちます。

始める前に、私たちが扱っているシステムを理解する必要があります。デモンストレーションの目的で、Fedora を使用します。ただし、これらの点は、Ubuntu バージョンまたはその他の Linux ディストリビューションに適用される必要があります。詳細については、オペレーティング システムのディストリビューションのマニュアルを確認してください。

システム環境のいくつかの主要なファイルを詳しく見てみましょう。ファイルは次のものに似ているか、それに対応している必要があります:

デフォルト Web サーバー: Apache

DocumentRoot: /var/www/html

PHP 設定ファイル: /etc/php.ini

拡張設定ディレクトリ: /etc/php 。 d/

セキュリティ ファイル: /etc/php.d/security.ini

これらのヒントは、SQL インジェクション、XSS、クロスサイト リクエスト フォージェリ攻撃、eval()、およびファイルアップロード攻撃。一般的な攻撃のリストは、こちら (https://www.sitepoint.com/top-10-php-security-vulnerabilities/) でご覧いただけます。

1. 不要なモジュールを削除します。

PHPには組み込みのphpモジュールが付属しています。これらは多くのタスクに役立ちますが、すべてのプロジェクトで必要になるわけではありません。次のコマンドを入力するだけで、利用可能な PHP モジュールが表示されます:

# php - m

リストを表示したら、不要なモジュールを削除できます。モジュールの数を減らすと、作業する Web アプリケーションのパフォーマンスとセキュリティが向上します。

2. PHP 情報の漏洩を制限します。

プラットフォームが重要な情報を漏洩することはよくあります。たとえば、PHP はバージョンやサーバーにインストールされた事実などの情報を漏洩します。これは、expose_php コマンドを通じて実現できます。リークを防ぐには、/etc/php.d/security.ini でこのコマンドをオフに設定する必要があります。

expose_php=Off

バージョンとそのステータスを知る必要がある場合は、Web サイトのアドレスに対して簡単な Curl コマンドを実行するだけで情報を取得できます。

Curl - I http://www.kubiji.cn/index.php

前のコマンドは次の情報を返します:

HTTP/1.1 200 OK

X-Powered-By: PHP/7.0.10

Content-type: text/html; charset=UTF-8

3. リモートコード実行を無効にします。

リモート コード実行は、PHP セキュリティ システムにおける一般的なセキュリティ脆弱性の 1 つです。デフォルトでは、システム上でリモート コード実行が有効になっています。 「allow_url_fopen」コマンドを使用すると、require、include、URL 対応の fopen ラッパーなどの関数が PHP ファイルに直接アクセスできるようになります。リモート アクセスは HTTP または FTP プロトコルを使用して実現されるため、システムはコード インジェクションのセキュリティ脆弱性を防御できなくなります。

システムを安全かつ確実にリモート コード実行から遠ざけるために、次のようにこのコマンドを「オフ」に設定できます:

Allow_url_fopen=Off

allow_url_include=Off

4. PHP エラーをログに記録します。

Web アプリケーションのセキュリティを強化するもう 1 つの簡単な方法は、訪問者にエラーを表示しないことです。これにより、ハッカーが Web サイトのセキュリティをまったく侵害できなくなります。 /etc/php.d/security.ini ファイルを編集する必要があります。

display_errors=Off

この手順を完了した後、「開発者は、エラー メッセージの助けを借りずに、どのようにしてデバッグできるのでしょうか?」と考えているかもしれません。開発者は、デバッグに log_errors コマンドを使用できます。 security.ini ファイルで log_errors コマンドを「オン」に設定するだけです。

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 には開発に役立つ関数が付属していますが、ハッカーが Web アプリケーションに侵入するために使用できる関数も多数あります。これらの機能を無効にすると、全体的なセキュリティが向上し、危険な PHP 機能にさらされることがなくなります。

これを行うには、まず php.ini ファイルを編集する必要があります。ファイル内に入ったら、disable_functions コマンドを見つけて、ファイル内の危険な機能を無効にします。これを行うには、次のコードをコピー/ペーストするだけです。

disable_functions =exec,passthru,

shell_exec,system,proc_open,popen,curl_exec,

curl_multi_exec,parse_ini_file,show_source

ここで見つけることができます (https://www.eukhost.com/blog/webhosting/dangerous) - php-functions-must-be-disabled/) 危険な PHP 関数の無効化について詳しくは、こちらをご覧ください。

7. ファイルをアップロードします。

アプリケーションでファイルのアップロードが必要ない場合は、ファイルのアップロード機能を無効にすることでセキュリティを向上させることができます。ユーザーによるファイルのアップロードを禁止したい場合は、/etc/php.d/ ディレクトリ内の security.ini ファイルを編集し、file_uploads コマンドを OFF に設定するだけです。

file_uploads=オフ

8. バージョンを最新の状態に保ちます。

開発者は、使用するテクノロジーにパッチを適用するために年中無休で働いています。 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アプリケーションのセキュリティを強化することができます。重要な点が抜けていると思われる場合は、メッセージを残して追加してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
アクション中のPHP:実際の例とアプリケーションアクション中のPHP:実際の例とアプリケーションApr 14, 2025 am 12:19 AM

PHPは、電子商取引、コンテンツ管理システム、API開発で広く使用されています。 1)eコマース:ショッピングカート機能と支払い処理に使用。 2)コンテンツ管理システム:動的コンテンツの生成とユーザー管理に使用されます。 3)API開発:RESTFUL API開発とAPIセキュリティに使用されます。パフォーマンスの最適化とベストプラクティスを通じて、PHPアプリケーションの効率と保守性が向上します。

PHP:インタラクティブなWebコンテンツを簡単に作成しますPHP:インタラクティブなWebコンテンツを簡単に作成しますApr 14, 2025 am 12:15 AM

PHPにより、インタラクティブなWebコンテンツを簡単に作成できます。 1)HTMLを埋め込んでコンテンツを動的に生成し、ユーザー入力またはデータベースデータに基づいてリアルタイムで表示します。 2)プロセスフォームの提出と動的出力を生成して、XSSを防ぐためにHTMLSPECIALCHARSを使用していることを確認します。 3)MySQLを使用してユーザー登録システムを作成し、Password_HashおよびPreprocessingステートメントを使用してセキュリティを強化します。これらの手法を習得すると、Web開発の効率が向上します。

PHPとPython:2つの一般的なプログラミング言語を比較しますPHPとPython:2つの一般的なプログラミング言語を比較しますApr 14, 2025 am 12:13 AM

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

PHPの永続的な関連性:それはまだ生きていますか?PHPの永続的な関連性:それはまだ生きていますか?Apr 14, 2025 am 12:12 AM

PHPは依然として動的であり、現代のプログラミングの分野で重要な位置を占めています。 1)PHPのシンプルさと強力なコミュニティサポートにより、Web開発で広く使用されています。 2)その柔軟性と安定性により、Webフォーム、データベース操作、ファイル処理の処理において顕著になります。 3)PHPは、初心者や経験豊富な開発者に適した、常に進化し、最適化しています。

PHPの現在のステータス:Web開発動向を見てくださいPHPの現在のステータス:Web開発動向を見てくださいApr 13, 2025 am 12:20 AM

PHPは、現代のWeb開発、特にコンテンツ管理とeコマースプラットフォームで依然として重要です。 1)PHPには、LaravelやSymfonyなどの豊富なエコシステムと強力なフレームワークサポートがあります。 2)パフォーマンスの最適化は、Opcacheとnginxを通じて達成できます。 3)PHP8.0は、パフォーマンスを改善するためにJITコンパイラを導入します。 4)クラウドネイティブアプリケーションは、DockerおよびKubernetesを介して展開され、柔軟性とスケーラビリティを向上させます。

PHP対その他の言語:比較PHP対その他の言語:比較Apr 13, 2025 am 12:19 AM

PHPは、特に迅速な開発や動的なコンテンツの処理に適していますが、データサイエンスとエンタープライズレベルのアプリケーションには良くありません。 Pythonと比較して、PHPはWeb開発においてより多くの利点がありますが、データサイエンスの分野ではPythonほど良くありません。 Javaと比較して、PHPはエンタープライズレベルのアプリケーションでより悪化しますが、Web開発により柔軟性があります。 JavaScriptと比較して、PHPはバックエンド開発により簡潔ですが、フロントエンド開発のJavaScriptほど良くありません。

PHP対Python:コア機能と機能PHP対Python:コア機能と機能Apr 13, 2025 am 12:16 AM

PHPとPythonにはそれぞれ独自の利点があり、さまざまなシナリオに適しています。 1.PHPはWeb開発に適しており、組み込みのWebサーバーとRich Functionライブラリを提供します。 2。Pythonは、簡潔な構文と強力な標準ライブラリを備えたデータサイエンスと機械学習に適しています。選択するときは、プロジェクトの要件に基づいて決定する必要があります。

PHP:Web開発の重要な言語PHP:Web開発の重要な言語Apr 13, 2025 am 12:08 AM

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター