给Linux管理员的十大PHP安全提示

PHP是最常用的服务器脚本编程语言之一。市场份额说明其主导地位。PHP 7已经出来的事实使得编程语言对当前开发人员更有吸引力。即使这些变化已经出现,许多开发人员对PHP的未来持怀疑态度。一个原因是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(),文件上传等等。检查常见的攻击列表

1、摆脱不必要的模块

PHP附带内置的PHP模块。它们对许多任务很有用,但并不是每个项目都需要它们。您可以通过键入以下命令来查看可用的PHP模块:

#php  -  m

一旦你拿到清单,你现在可以摆脱不必要的模块。减少的模块数量将有助于您提高正在开展的Web应用程序的性能和安全性。

2、限制PHP信息泄漏

泄漏重要信息的平台很常见。例如,PHP发布了诸如版本和它被安装在服务器上的事实的信息。这是通过expose_php指令完成的。为了防止泄漏,您需要在/etc/php.d/security.ini中将该指令设置为off 。

expose_php =关闭

如果任何人需要知道版本及其状态,通过Web站点地址执行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”指令允许功能,如需要,包括或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

您可以在这里阅读更多有关禁用危险PHP功能的信息。

7、上传文件

如果您的应用不需要上传任何文件,禁用上传文件的功能可以提高安全性。要禁用用户上传文件,您需要在/etc/php.d/ directory目录中编辑security.ini文件,并将file_uploads指令设置为Off

file_uploads =Off

8、及时更新Php版本

开发人员正在全天候工作,以补丁您正在使用的技术。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应用程序的安全性。如果你认为我们错过了一些重要的事情,不要忘了在下面发表评论,让我们知道。