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/

如何解决Linux服务器上的SSH连接中断问题随着云计算和远程工作的普及,远程连接到Linux服务器成为了日常工作中不可或缺的一部分。然而,有时SSH连接可能会出现中断的情况,给我们带来不便和困扰。本文将分享一些解决Linux服务器上SSH连接中断问题的方法,帮助您更好地管理和维护服务器。一、网络问题首先,我们需要排除网络问题。网络稳定与否直接影响到SSH连

如何解决Linux服务器上的SSH连接中断和拒绝问题在日常的运维工作中,使用SSH(SecureShell)进行远程连接是非常常见的操作。尽管SSH是一种安全可靠的协议,但有时仍然会遇到连接中断和拒绝的问题。这些问题可能由于各种原因引起,本文将介绍一些常见的解决方法。检查网络连接首先,确认服务器和本地机器之间的网络连接是否正常。可以通过ping命令来测试服

在MicrosoftStore中,现在有一个版本的AlmaLinux与适用于Linux的Windows子系统兼容。这为用户提供了一系列令人印象深刻的新选项,因此我们将向您展示如何在Windows11上安装AlmaLinux。它于2021年3月发布,提供了第一个稳定的生产版本,此后该非营利基金会增加了许多新成员。最近的AMD是上个月加入的,时间是2022年3月。借助适用于Linux的Windows子系统,在Windows和Linux世界中工作的开

Linux服务器安全:使用命令检查系统漏洞概述:在当今的数字化环境中,服务器安全性是至关重要的。针对已知漏洞进行及时的检测和修复,能够有效地保护服务器免受潜在的攻击威胁。本文将介绍一些常用的命令,可用于在Linux服务器上检查系统漏洞,并提供相关的代码示例。通过正确使用这些命令,您将能够增强服务器的安全性。检查系统更新:在开始进行漏洞检查之前,确保您的系统已

提供更强大的Web接口安全性:Linux服务器的关键实践在当今的数字时代,Web接口安全性变得越来越重要。随着越来越多的应用和服务转移到云端,服务器安全保护也日益成为关键问题。Linux作为最常用的服务器操作系统之一,其安全性的保护至关重要。本文将介绍一些关键实践,帮助您提供更强大的Web接口安全性。更新和维护操作系统和软件及时进行操作系统和软件的更新是服务

Linux服务器安全加固:配置和优化您的系统引言:在当今信息安全威胁日益增加的环境中,保护您的Linux服务器免受恶意攻击和未经授权的访问变得至关重要。为了加固系统安全,您需要采取一系列的安全措施,以保护您的服务器和其中存储的敏感数据。本文将介绍一些关键的配置和优化步骤,以提高您的Linux服务器的安全性。一、更新和管理软件包安装最新的软件包和更新对于保持系

Linux服务器防御:保护Web接口免受恶意文件上传攻击近年来,随着网络的普及和发展,Web应用程序的使用越来越广泛。然而,与之伴随而来的是各种安全威胁,其中之一就是恶意文件上传攻击。恶意文件上传攻击是指攻击者向服务器上传包含恶意代码的文件,从而获取服务器权限或者传播恶意内容。为了保护Web接口免受恶意文件上传攻击,我们可以采取一些有效的防御措施。下面将介绍

Linux服务器上常见的日志文件损坏问题及其修复方法摘要:日志文件是Linux服务器中非常重要的组成部分,它记录了系统运行过程中的各种操作和事件。然而,由于各种原因,日志文件有时会出现损坏问题,导致服务器无法正常分析和调试。本文将探讨一些常见的日志文件损坏问题,并提供相应的解决方法。引言:在Linux服务器运行过程中,日志文件扮演着至关重要的角色。它们记录了


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

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

ホットトピック



