ホームページ バックエンド開発 PHPチュートリアル Linux サーバー、PHP のセキュリティ構成の実践トップ 10

Linux サーバー、PHP のセキュリティ構成の実践トップ 10

Jun 23, 2016 pm 01:41 PM

PHP はさまざまな Web 開発で広く使用されています。サーバー側のスクリプトが正しく構成されていない場合、さまざまな問題が発生する可能性があります。現在、ほとんどの Web サーバーは Linux (Ubuntu、Debian など) 上で実行されています。この記事では、PHP のセキュリティに関するベスト プラクティスのトップ 10 を例示し、PHP を簡単かつ安全に設定できるようにします。

PHP セキュリティ設定のヒント:

DocumentRoot: /var/www/
デフォルトの Web サーバー: Apache
デフォルトの PHP 設定ファイル: /etc/php.ini
デフォルトの PHP 拡張機能設定ディレクトリ: /etc/php /
サンプル php セキュリティ構成ファイル: /etc/php.d/security.ini (テキスト エディターを使用してこのファイルを作成する必要があります)
オペレーティング システム: Ubuntu (この手順は、RHEL などの他の Linux ディストリビューションでも機能するはずです / CentOS / Fedora または OpenBSD/FreeBSD/HP-UX などの他の Unix 系オペレーティング システム)

1. PHP 組み込みモジュールを削減します

パフォーマンスとセキュリティを強化するために、次のモジュールの数を減らすことを強くお勧めします。 PHP のモジュール。コマンドを実行してインストールされた以下のモジュールを見てみましょう。

1    # php ?m
ログイン後にコピー

同様の結果が得られます:

同様の結果が得られます:

[PHP モジュール]
apc
bcmath
bz2
Calendar
Core
ctype
curl
date
dom
ereg
exif
fileinfo
フィルター
ftp
gd
gettext
gmp
ハッシュ
iconv
imap
json
libxml
mbstring
memcache
mysql
mysqli
openssl
pcntl
pc re
PDO
pdo_mysql
pdo_sqlite
Phar
readline
リフレクション
セッション
shmop
SimpleXML
ソケット
SPL
sqlite3
標準
suhosin
トークナイザー
wddx
xml
xmlreader
xmlrpc
xmlwriter
xsl
zip
z lib
[Zend モジュール] ]
Suhosin


モジュールを削除して、このコマンドを実行します。例: delete module sqlite3

1    # rm /etc/php.d/sqlite3.ini
ログイン後にコピー

または

1    # mv /etc/php.d/sqlite3.ini /etc/php.d/sqlite3.disableRestrict
ログイン後にコピー

2. PHP 情報漏洩を最小限に抑える

デフォルトの PHP では、各応答間の HTTP ヘッダーに行が生成されます (X-Powered など)。 -作者: PHP/5.2.10)。これにより、攻撃者にとって非常に貴重な情報がシステム情報に作成されます。

HTTP の例:

1    HTTP/1.1 200 OK2    X-Powered-By: PHP/5.2.103    Content-type: text/html; charset=UTF-84    Vary: Accept-Encoding, Cookie5    X-Vary-Options: Accept-Encoding;list-contains=gzip,Cookie;string-contains=wikiToken;6    string-contains=wikiLoggedOut;string-contains=wiki_session7    Last-Modified: Thu, 03 Nov 2011 22:32:55 GMT8    ...
ログイン後にコピー

したがって、PHP 情報漏洩を無効にするには、/etc/php.d/secuity.ini を編集し、次のディレクティブを設定する必要があります:

1    expose_php=Off
ログイン後にコピー

3. PHP でロードされるモジュールを最小化する

デフォルトでは、RHEL によってロードされるすべてのモジュールは /etc/php.d/ ディレクトリにあります。特定のモジュールを無効または有効にするには、構成ファイル /etc/php.d/ ディレクトリ内のモジュール名をコメントアウトするだけです。 PHP のパフォーマンスとセキュリティを最適化するために、アプリケーションで必要な場合は拡張機能を有効にすることを強くお勧めします。例: GD 拡張機能が無効になっている場合は、次のコマンドを入力します:

1    # cd /etc/php.d/2    # mv gd.{ini,disable}3    # /etc/init.d/apache2 restart
ログイン後にコピー

PGP GD モジュールを拡張するには、次のコマンドを入力します:

1    # mv gd.{disable,ini}2    # /sbin/service httpd restart
ログイン後にコピー

4. PHP エラー メッセージをログに記録します

システムを改善するにはおよび Web アプリケーションのセキュリティのため、PHP エラー メッセージは公開できません。これを行うには、/etc/php.d/security.ini ファイルを編集し、次の指示を設定する必要があります:

1    display_errors=Off
ログイン後にコピー

開発者によるバグ修正を容易にするために、すべての PHP エラー情報をログに記録する必要があります。 。

1    log_errors=On2    error_log=/var/log/httpd/php_scripts_error.log
ログイン後にコピー

5. リモート コード実行を無効にする

コードがリモートで実行される場合、PHP コードが FTP や Web などのリモート関数からデータを取得して、PHP 経由でビルド関数を実行できるようにします。例: file_get_contents()。

多くのプログラマーは、これらの関数を使用して、FTP または HTTP プロトコルを通じてデータをリモートで取得します。ただし、この方法では PHP ベースのアプリケーションに大きな脆弱性が生じます。ほとんどのプログラマは、ユーザーが提供したデータを渡すときに適切なサニタイズを実装していないため、セキュリティ ホールが開き、脆弱性を挿入するコードが作成されます。この問題を解決するには、/etc/php.d/security.ini で _url_fopen を無効にし、次のコマンドを設定する必要があります:

1    allow_url_fopen=Off
ログイン後にコピー

これとは別に、システムのセキュリティを向上させるために _url_include を無効にすることもお勧めします。

1    allow_url_include=Off
ログイン後にコピー

6. PHP の危険な関数を無効にする

PHP には、不適切に使用するとシステムをクラッシュさせる危険な組み込み関数が多数あります。 /etc/php.d/security.ini を編集することで、PHP 組み込み機能のリストを作成して無効にすることができます。

えー

7. リソース制御

为了提高系统的稳定性,强烈建议设置每个脚本解析请求数据所花费的时间和脚本可能消耗的最大内存量。正确的配置这些参数可以防止PHP任何脚本消耗太多的资源或是内存,从而避免系统不安全或降低安全系数。

1    # set in seconds2    max_execution_time = 303    max_input_time = 304    memory_limit = 40M
ログイン後にコピー

8. 限制PHP访问文件系统

该open_basedir指令指定的目录是允许PHP访问使用fopen()等功能。如果任何脚本试图访问超出open_basdir定义的路径文件,PHP将拒绝打开。值得注意的是,你不能使用一个符号链接作为一种变通方法。

1    ; Limits the PHP process from accessing files outside2    ; of specifically designated directories such as /var/www/html/3    open_basedir="/var/www/html/"4    ; ------------------------------------5    ; Multiple dirs example6    ; open_basedir="/home/httpd/vhost/cyberciti.biz/html/:/home/httpd/vhost/nixcraft.com/html/:/home/httpd/vhost/theos.in/html/"7    ; ------------------------------------
ログイン後にコピー

9.限制文件/目录访问

进行适当的安全设置:确保Apache作为非root用户运行,比如www-data或www。对于文件和目录在基于/var/www/下同样属于非root用户。想要更改所有者,执行以下命令:

1    # chown -R apache:apache /var/www/
ログイン後にコピー

10.编译保护Apache,PHP和MySQL的配置文件

使用charrt命令编译保护配置文件

1    # chattr +i /etc/php.ini2    # chattr +i /etc/php.d/*3    # chattr +i /etc/my.ini4    # chattr +i /etc/httpd/conf/httpd.conf5    # chattr +i /etc/
ログイン後にコピー

使用charrt命令可以编译保护PHP文件或者是文件中的/var/www/html的目录:

1    # chattr +i /var/www/html/file1.php2    # chattr +i /var/www/html/
ログイン後にコピー

 

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

ホット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ヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

PHP スクリプトを使用して Linux サーバー上でサーバー間ファイル転送を実装する方法 PHP スクリプトを使用して Linux サーバー上でサーバー間ファイル転送を実装する方法 Oct 05, 2023 am 09:06 AM

タイトル: クロスサーバー ファイル転送の PHP スクリプト実装 1. はじめに クロスサーバー ファイル転送では、通常、あるサーバーから別のサーバーにファイルを転送する必要があります。この記事では、PHP スクリプトを使用して Linux サーバー上でサーバー間ファイル転送を実装する方法と、具体的なコード例を紹介します。 2. 準備 PHP スクリプトの作成を開始する前に、サーバー上で次の環境が構成されていることを確認する必要があります。 PHP のインストール: Linux サーバーに PHP をインストールし、PHP バージョンがコード要件を満たしていることを確認します。

信頼できる Web インターフェイスを Linux サーバーに展開するにはどうすればよいですか? 信頼できる Web インターフェイスを Linux サーバーに展開するにはどうすればよいですか? Sep 09, 2023 pm 03:27 PM

信頼できる Web インターフェイスを Linux サーバーに展開するにはどうすればよいですか?はじめに: 今日の情報爆発の時代において、Web アプリケーションは人々が情報を取得し、通信するための主要な方法の 1 つになりました。ユーザーのプライバシーと情報の信頼性を確保するには、信頼できる Web インターフェイスを Linux サーバーに展開する必要があります。この記事では、Linux 環境に Web インターフェイスを展開する方法を紹介し、関連するコード例を示します。 1. Linux サーバーをインストールして構成します。まず、Linux サーバーを準備する必要があります。

Linux サーバーのセキュリティ: コマンドを使用してシステムの脆弱性をチェックする Linux サーバーのセキュリティ: コマンドを使用してシステムの脆弱性をチェックする Sep 08, 2023 pm 03:39 PM

Linux サーバー セキュリティ: コマンドを使用してシステムの脆弱性をチェックする 概要: 今日のデジタル環境では、サーバー セキュリティが非常に重要です。既知の脆弱性をタイムリーに検出して修復することで、潜在的な攻撃の脅威からサーバーを効果的に保護できます。この記事では、Linux サーバー上のシステムの脆弱性をチェックするために使用できる一般的に使用されるコマンドをいくつか紹介し、関連するコード例を示します。これらのコマンドを正しく使用すると、サーバーのセキュリティを強化できます。システムのアップデートを確認する: 脆弱性のチェックを開始する前に、システムにアップデートがあることを確認してください。

Linux サーバーのパフォーマンスとリソース使用率を最適化する方法 Linux サーバーのパフォーマンスとリソース使用率を最適化する方法 Nov 07, 2023 pm 02:27 PM

Linux サーバーのパフォーマンスとリソース使用率を最適化する方法には、特定のコード サンプルが必要です 概要: Linux サーバーのパフォーマンスとリソース使用率を最適化することは、サーバーの安定した効率的な運用を確保するための鍵です。この記事では、Linux サーバーのパフォーマンスとリソース使用率を最適化するいくつかの方法を紹介し、具体的なコード例を示します。はじめに: インターネットの急速な発展に伴い、多数のアプリケーションやサービスが Linux サーバー上に展開されています。サーバーの効率的かつ安定した動作を確保するには、サーバーのパフォーマンスとリソース使用率を最適化して、

Linux サーバーの障害とセキュリティ: システムを健全に管理する方法 Linux サーバーの障害とセキュリティ: システムを健全に管理する方法 Sep 10, 2023 pm 04:02 PM

インターネット技術の発展に伴い、アプリケーションや Web サイトのホストと管理に Linux サーバーを使用する企業や個人が増えています。しかし、サーバーの数が増えると、サーバーの障害とセキュリティの問題が緊急の課題になります。この記事では、Linux サーバー障害の原因と、システムを健全に管理および保護する方法について説明します。まず、Linux サーバーの誤動作を引き起こす可能性のある一般的な理由をいくつか見てみましょう。まず、ハードウェア障害が最も一般的な理由の 1 つです。たとえば、サーバーが過熱している場合、

より強力な Web インターフェイス セキュリティの提供: Linux サーバーの主要な実践。 より強力な Web インターフェイス セキュリティの提供: Linux サーバーの主要な実践。 Sep 08, 2023 pm 12:51 PM

より強力な Web インターフェイス セキュリティの提供: Linux サーバーの主要な実践 Web インターフェイスのセキュリティは、今日のデジタル時代においてますます重要になっています。クラウドに移行するアプリケーションやサービスが増えるにつれ、サーバーのセキュリティ保護がますます重要な問題になってきています。最も一般的に使用されているサーバー オペレーティング システムの 1 つである Linux のセキュリティ保護は非常に重要です。この記事では、より強力な Web インターフェイスのセキュリティを提供するための重要な実践方法をいくつか紹介します。 OSやソフトウェアのアップデートとメンテナンス OSやソフトウェアのタイムリーなアップデートはサービスです

Linux サーバーのセキュリティ強化: システムの構成と最適化 Linux サーバーのセキュリティ強化: システムの構成と最適化 Sep 08, 2023 pm 03:19 PM

Linux サーバーのセキュリティ強化: システムの構成と最適化 はじめに: 情報セキュリティの脅威が増大する今日の環境では、悪意のある攻撃や不正アクセスから Linux サーバーを保護することが重要になっています。システムのセキュリティを強化するには、サーバーとサーバーに保存されている機密データを保護するための一連のセキュリティ対策を講じる必要があります。この記事では、Linux サーバーのセキュリティを向上させるためのいくつかの主要な構成手順と最適化手順について説明します。 1. ソフトウェア パッケージの更新と管理: 最新のソフトウェア パッケージと更新をインストールすることは、システムを保守するために不可欠です。

Linux サーバー防御: 悪意のあるファイル アップロード攻撃から Web インターフェイスを保護します。 Linux サーバー防御: 悪意のあるファイル アップロード攻撃から Web インターフェイスを保護します。 Sep 09, 2023 am 09:06 AM

Linux サーバー防御: 悪意のあるファイル アップロード攻撃から Web インターフェイスを保護する 近年、インターネットの普及と発展に伴い、Web アプリケーションの使用がますます普及しています。しかし、それに伴いさまざまなセキュリティ上の脅威も生じており、その 1 つが悪意のあるファイルのアップロード攻撃です。悪意のあるファイル アップロード攻撃とは、攻撃者がサーバーのアクセス許可を取得したり、悪意のあるコンテンツを拡散したりするために、悪意のあるコードを含むファイルをサーバーにアップロードすることを指します。悪意のあるファイルのアップロード攻撃から Web インターフェイスを保護するために、いくつかの効果的な防御手段を講じることができます。以下に紹介します

See all articles