乐博娱乐»PHP»Linux治理员不行不知十大PHP宁静要点

Linux治理员不行不知十大PHP宁静要点

来源:51cto 宣布时间:2016-11-30 阅读次数:乐博

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()和文件上传等攻击。可在此(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应用程序方面的宁静。要是你认为我们遗漏了重要的内容,接待留言增补。

原文标题:Top 10 PHP Security Tips for Linux Admins,作者:Damian Wolf

乐博PHP