Rumah pembangunan bahagian belakang tutorial php Linux服务器,PHP的10大安全配置实践

Linux服务器,PHP的10大安全配置实践

Jun 23, 2016 pm 01:41 PM

PHP被广泛用于各种Web开发。而当服务器端脚本配置错误时会出现各种问题。现今,大部分Web服务器是基于Linux环境下运行(比如:Ubuntu,Debian等)。本文例举了十大PHP最佳安全实践方式,能够让您轻松、安全配置PHP。

PHP安全性设置提示:

DocumentRoot: /var/www/
Default Web server: Apache
Default PHP configuration file: /etc/php.ini
Default PHP extensions config directory: /etc/php.d/
Our sample php security config file: /etc/php.d/security.ini (you need to create this file using a text editor)
Operating systems: Ubuntu (the instructions should work with any other Linux distributions such as RHEL / CentOS / Fedora or other Unix like operating systems such as OpenBSD/FreeBSD/HP-UX).

1. 减少PHP内置模块

为了增强性能和安全性,强烈建议,减少PHP中的模块。来看看下面这个被执行命令安装的模块。

1    # php ?m
Salin selepas log masuk

你将会得到类似的结果:

你将会得到类似的结果:

[PHP Modules]
apc
bcmath
bz2
calendar
Core
ctype
curl
date
dom
ereg
exif
fileinfo
filter
ftp
gd
gettext
gmp
hash
iconv
imap
json
libxml
mbstring
memcache
mysql
mysqli
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
readline
Reflection
session
shmop
SimpleXML
sockets
SPL
sqlite3
standard
suhosin
tokenizer
wddx
xml
xmlreader
xmlrpc
xmlwriter
xsl
zip
zlib
[Zend Modules]
Suhosin


删除一个模块,并执行此命令。例如:删除模块sqlite3

1    # rm /etc/php.d/sqlite3.ini
Salin selepas log masuk

或者

1    # mv /etc/php.d/sqlite3.ini /etc/php.d/sqlite3.disableRestrict
Salin selepas log masuk

2. 使PHP信息泄露最小化

在默认PHP时在HTTP抬头处会生成一条线介于每个响应中,(比如X-Powered-By: 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    ...
Salin selepas log masuk

因此,我们强烈建议,禁止PHP信息泄露,想要要禁止它,我们要编辑/etc/php.d/secutity.ini,并设置以下指令:

1    expose_php=Off
Salin selepas log masuk

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
Salin selepas log masuk

为了扩展PGP GD模块,然后键入以下命令:

1    # mv gd.{disable,ini}2    # /sbin/service httpd restart
Salin selepas log masuk

4. 记录PHP错误信息

为了提高系统和Web应用程序的安全,PHP错误信息不能被暴露出。要做到这一点,需要编辑/etc/php.d/security.ini 文件,并设置以下指令:

1    display_errors=Off
Salin selepas log masuk

为了便于开发者Bug修复,所有PHP的错误信息都应该记录在日志中。

1    log_errors=On2    error_log=/var/log/httpd/php_scripts_error.log
Salin selepas log masuk

5. 禁用远程执行代码

如果远程执行代码,允许PHP代码从远程检索数据功能,如FTP或Web通过PHP来执行构建功能。比如:file_get_contents()。

很多程序员使用这些功能,从远程通过FTP或是HTTP协议而获得数据。然而,此法在基于PHP应用程序中会造成一个很大的漏洞。由于大部分程序员 在传递用户提供的数据时没有做到适当的过滤功能,打开安全漏洞并且创建了代码时注入了漏洞。要解决此问题,需要禁用_url_fopen in /etc/php.d/security.ini,并设置以下命令:

1    allow_url_fopen=Off
Salin selepas log masuk

除了这个,我还建议禁用_url_include以提高系统的安全性。

1    allow_url_include=Off
Salin selepas log masuk

6. 禁用PHP中的危险函数

PHP中有很多危险的内置功能,如果使用不当,它可能使你的系统崩溃。你可以创建一个PHP内置功能列表通过编辑/etc/php.d/security.ini来禁用它。

1    disable_functions =exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
Salin selepas log masuk

7. 资源控制

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

1    # set in seconds2    max_execution_time = 303    max_input_time = 304    memory_limit = 40M
Salin selepas log masuk

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    ; ------------------------------------
Salin selepas log masuk

9.限制文件/目录访问

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

1    # chown -R apache:apache /var/www/
Salin selepas log masuk

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/
Salin selepas log masuk

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

1    # chattr +i /var/www/html/file1.php2    # chattr +i /var/www/html/
Salin selepas log masuk

 

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara menggunakan skrip PHP untuk melaksanakan pemindahan fail silang pelayan pada pelayan Linux Cara menggunakan skrip PHP untuk melaksanakan pemindahan fail silang pelayan pada pelayan Linux Oct 05, 2023 am 09:06 AM

Tajuk: Pelaksanaan skrip PHP pemindahan fail silang pelayan 1. Pengenalan Dalam pemindahan fail silang pelayan, kita biasanya perlu memindahkan fail dari satu pelayan ke pelayan yang lain. Artikel ini akan memperkenalkan cara menggunakan skrip PHP untuk melaksanakan pemindahan fail silang pelayan pada pelayan Linux dan memberikan contoh kod khusus. 2. Persediaan Sebelum mula menulis skrip PHP, kita perlu memastikan persekitaran berikut telah dikonfigurasikan pada pelayan: Pasang PHP: Pasang PHP pada pelayan Linux dan pastikan versi PHP memenuhi keperluan kod.

Bagaimana untuk menggunakan antara muka web yang boleh dipercayai pada pelayan Linux? Bagaimana untuk menggunakan antara muka web yang boleh dipercayai pada pelayan Linux? Sep 09, 2023 pm 03:27 PM

Bagaimana untuk menggunakan antara muka web yang boleh dipercayai pada pelayan Linux? Pengenalan: Dalam era ledakan maklumat hari ini, aplikasi Web telah menjadi salah satu cara utama untuk orang ramai mendapatkan maklumat dan berkomunikasi. Untuk memastikan privasi pengguna dan kebolehpercayaan maklumat, kami perlu menggunakan antara muka Web yang boleh dipercayai pada pelayan Linux. Artikel ini akan memperkenalkan cara untuk menggunakan antara muka web dalam persekitaran Linux dan menyediakan contoh kod yang berkaitan. 1. Pasang dan konfigurasikan pelayan Linux Mula-mula, kita perlu menyediakan Li

Keselamatan Pelayan Linux: Gunakan Perintah untuk Memeriksa Kerentanan Sistem Keselamatan Pelayan Linux: Gunakan Perintah untuk Memeriksa Kerentanan Sistem Sep 08, 2023 pm 03:39 PM

Keselamatan Pelayan Linux: Menggunakan Perintah untuk Memeriksa Kerentanan Sistem Gambaran Keseluruhan: Dalam persekitaran digital hari ini, keselamatan pelayan adalah penting. Pengesanan dan pembaikan kelemahan yang diketahui tepat pada masanya boleh melindungi pelayan secara berkesan daripada potensi ancaman serangan. Artikel ini akan memperkenalkan beberapa arahan yang biasa digunakan yang boleh digunakan untuk menyemak kelemahan sistem pada pelayan Linux dan menyediakan contoh kod yang berkaitan. Dengan menggunakan arahan ini dengan betul, anda akan dapat meningkatkan keselamatan pelayan anda. Semak kemas kini sistem: Sebelum anda mula menyemak kelemahan, pastikan sistem anda mempunyai

Bagaimana untuk mengoptimumkan prestasi dan penggunaan sumber pelayan Linux Bagaimana untuk mengoptimumkan prestasi dan penggunaan sumber pelayan Linux Nov 07, 2023 pm 02:27 PM

Cara mengoptimumkan prestasi dan penggunaan sumber pelayan Linux memerlukan contoh kod khusus: Mengoptimumkan prestasi pelayan Linux dan penggunaan sumber adalah kunci untuk memastikan operasi pelayan yang stabil dan cekap. Artikel ini akan memperkenalkan beberapa kaedah untuk mengoptimumkan prestasi pelayan Linux dan penggunaan sumber serta menyediakan contoh kod khusus. Pengenalan: Dengan perkembangan pesat Internet, sejumlah besar aplikasi dan perkhidmatan digunakan pada pelayan Linux. Untuk memastikan operasi pelayan yang cekap dan stabil, kami perlu mengoptimumkan prestasi dan penggunaan sumber pelayan untuk mencapai

Kegagalan dan keselamatan pelayan Linux: Cara mengurus sistem anda dengan sihat Kegagalan dan keselamatan pelayan Linux: Cara mengurus sistem anda dengan sihat Sep 10, 2023 pm 04:02 PM

Dengan perkembangan teknologi Internet, semakin banyak perusahaan dan individu memilih untuk menggunakan pelayan Linux untuk mengehoskan dan mengurus aplikasi dan tapak web mereka. Walau bagaimanapun, apabila bilangan pelayan bertambah, kegagalan pelayan dan isu keselamatan menjadi tugas yang mendesak. Artikel ini akan meneroka punca kegagalan pelayan Linux dan cara mengurus serta melindungi sistem dengan sihat. Mula-mula, mari kita lihat beberapa sebab biasa yang boleh menyebabkan pelayan Linux tidak berfungsi. Pertama, kegagalan perkakasan adalah salah satu sebab yang paling biasa. Sebagai contoh, pelayan terlalu panas,

Menyediakan Keselamatan Antara Muka Web yang Lebih Kuat: Amalan Utama untuk Pelayan Linux. Menyediakan Keselamatan Antara Muka Web yang Lebih Kuat: Amalan Utama untuk Pelayan Linux. Sep 08, 2023 pm 12:51 PM

Menyediakan Keselamatan Antara Muka Web yang Lebih Kuat: Amalan Utama untuk Pelayan Linux Keselamatan antara muka web telah menjadi semakin penting dalam era digital hari ini. Apabila semakin banyak aplikasi dan perkhidmatan beralih ke awan, perlindungan keselamatan pelayan semakin menjadi isu kritikal. Sebagai salah satu sistem pengendalian pelayan yang paling biasa digunakan, perlindungan keselamatan Linux adalah penting. Artikel ini akan memperkenalkan beberapa amalan utama untuk membantu anda menyediakan keselamatan antara muka web yang lebih kukuh. Mengemas kini dan menyelenggara sistem pengendalian dan perisian Kemas kini sistem pengendalian dan perisian tepat pada masanya adalah perkhidmatan

Pengerasan keselamatan pelayan Linux: konfigurasi dan optimumkan sistem anda Pengerasan keselamatan pelayan Linux: konfigurasi dan optimumkan sistem anda Sep 08, 2023 pm 03:19 PM

Pengerasan Keselamatan Pelayan Linux: Konfigurasikan dan Optimumkan Sistem Anda Pengenalan: Dalam persekitaran hari ini yang meningkatkan ancaman keselamatan maklumat, melindungi pelayan Linux anda daripada serangan berniat jahat dan akses tanpa kebenaran telah menjadi kritikal. Untuk mengeraskan keselamatan sistem anda, anda perlu mengambil satu siri langkah keselamatan untuk melindungi pelayan anda dan data sensitif yang disimpan di atasnya. Artikel ini akan merangkumi beberapa konfigurasi utama dan langkah pengoptimuman untuk meningkatkan keselamatan pelayan Linux anda. 1. Kemas kini dan uruskan pakej perisian Memasang pakej dan kemas kini perisian terkini adalah penting untuk menyelenggara sistem.

Pertahanan Pelayan Linux: Lindungi antara muka web daripada serangan muat naik fail berniat jahat. Pertahanan Pelayan Linux: Lindungi antara muka web daripada serangan muat naik fail berniat jahat. Sep 09, 2023 am 09:06 AM

Pertahanan Pelayan Linux: Lindungi Antara Muka Web daripada Serangan Muat Naik Fail Berniat jahat Dalam beberapa tahun kebelakangan ini, dengan populariti dan perkembangan Internet, penggunaan aplikasi Web telah menjadi semakin meluas. Walau bagaimanapun, bersama-sama dengannya datang pelbagai ancaman keselamatan, salah satunya adalah serangan muat naik fail berniat jahat. Serangan muat naik fail berniat jahat merujuk kepada penyerang yang memuat naik fail yang mengandungi kod hasad ke pelayan untuk mendapatkan kebenaran pelayan atau menyebarkan kandungan berniat jahat. Untuk melindungi antara muka web daripada serangan muat naik fail berniat jahat, kami boleh mengambil beberapa langkah pertahanan yang berkesan. akan diperkenalkan di bawah

See all articles