PHP的安全是广大开拓职员担心的紧张问题。
虽然PHP供应从里到外的可靠安全,但是须要由开拓职员精确地落实这些安全机制。
我们在本文中将为Linux管理员先容几个PHP安全要点。
这些要点将帮助你确保Web运用程序安全,并确保从长远来看正常运行。

在我们开始之前,有必要理解一下我们所要处理的系统。
出于演示的须要,我们利用Fedora。
然而,这些要点该当适用于Ubuntu版本或其他任何Linux发行版。
查看你操作系统发行版的利用手册,即可理解更多信息。

不妨仔细看一下我们系统环境的几个关键文件
你的文件该当类似或对应于下列:

linux配置phpiniLinux十年夜PHP平安要点 Docker

默认的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中将该命令设成off。

expose_php=Off

如果你须要理解版本及其状态,只要针对网站地址运行一个大略的Curl命令就可以得到该信息。

Curl - I http://www.livecoding.tv/index.php

之前的命令会返回下列信息:

HTTP/1.1 200 OK X-Powered-By: PHP/7.0.10 Content-type: text/html; charset=UTF-8

3. 禁用远程代码实行

远程代码实行是PHP安全系统方面的常见安全漏洞之一。
默认情形下,远程代码实行在你的系统上已被启用。
“allow_url_fopen”命令许可要求(require)、包括(include)或可识别URL的fopen包装器等函数可以直接访问PHP文件。
远程访问通过利用HTTP或FTP协议来实现,会导致系统无力防御代码注入安全漏洞。

为了确保你的系统安全可靠、阔别远程代码实行,你可以将该命令设成“Off”,如下所示:

Allow_url_fopen=Off allow_url_include=Off

4. 将PHP缺点记入日志

加强Web运用程序安全的另一个大略方法便是,不向访客显示缺点。
这将确保黑客根本无法危及网站的安全性。
须要在/etc/php.d/security.ini文件里面进行编辑。

display_errors=Off

现在你可能会想:完成这一步后,“开拓职员在没有缺点信息的帮助下如何调试?”开拓职员可以利用log_errors命令来用于调试。
他们只须要在security.ini文件中将log_errors命令设成“On”。

log_errors=On error_log=/var/log/httpd/php_scripts_error.log

5. 合理掌握资源

为了确保运用程序的安全,掌握资源很主要。
为了确保适当的实行和安全,你就要对PHP脚本实行予以限定。
此外,还该当对花在解析要求数据上的韶光予以限定。
如果实行韶光受到掌握,脚本利用的内存等其他资源也该当会得到相应配置。
所有这些度量指标可通过编辑security.ini文件来加以管理。

# set in seconds 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=Off

8.保持版本最新

开拓职员在24/7不间断地事情,给你利用的技能打上补丁。
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管理员最关注的问题之一。
如果采纳了上述要点,你势必可以加强开拓环境和PHP Web运用程序方面的安全。
假如你认为我们遗漏了主要的内容,欢迎留言补充。

本文地址:https://www.linuxprobe.com/linux-safety-points.html