当前位置:主页>科 研>学术交流>

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()和文件上传等攻击。可在此(https://www.sitepoint.com/top-10-php-security-vulnerabilities/)查看常见攻击列表。

  1. 删除不必要的模块。

  PHP随带内置的PHP模块。它们对许多任务来说很有用,但是不是每个项目都需要它们。只要输入下面这个命令,就可以查看可用的PHP模块:
 

  
 

  一旦你查看了列表,现在可以删除不必要的模块。减少模块的数量有助于提高你所处理的Web应用程序的性能和安全。

  2. 限制PHP信息泄露。

  平台泄露关键信息司空见惯。比如说,PHP会泄露一些信息,比如版本以及它安装到服务器上的事实。这可以通过expose_php命令来实现。为了防止泄露,你需要在/etc/php.d/security.ini中将该命令设成off。
 

  
 

  如果你需要了解版本及其状态,只要针对网站地址运行一个简单的Curl命令就可以获得该信息。
 

  
 

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

  
 

  3. 禁用远程代码执行。

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

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

  
 

  4. 将PHP错误记入日志。

  加强Web应用程序安全的另一个简单方法就是,不向访客显示错误。这将确保黑客根本无法危及网站的安全性。需要在/etc/php.d/security.ini文件里面进行编辑。
 

  
 

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

  
 

  5. 合理控制资源。

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

  
 

  6. 禁用危险的PHP函数

  PHP随带用于开发的实用函数,但是也有可能被黑客用来闯入Web应用程序的大量函数。禁用这些函数可以提高总体安全性,并确保你没有受到危险的PHP函数的影响。

  为此,你先要编辑php.ini文件。一旦进入该文件,找到disable_functions命令,禁用里面的危险函数。为此,你只要拷贝/粘贴下列代码。
 

  
 

  你可以在此(https://www.eukhost.com/blog/webhosting/dangerous-php-functions-must-be-disabled/)进一步了解禁用危险的PHP函数。

  7. 上传文件。

  如果你的应用程序不需要上传任何文件,禁用上传文件的功能有助于提高安全。想禁止用户上传文件,只需要编辑/etc/php.d/目录下的security.ini文件,将file_uploads命令设成OFF。
 

  
 

  8. 保持版本最新。

  开发人员在24/7不间断地工作,给你使用的技术打上补丁。PHP也是一样。由于它有一个开源社区,补丁和修正版定期发布。更新版还为首日漏洞及其他安全漏洞提供了安全补丁。如果你注重应用程序的安全性,就要始终确保你的PHP解决方案是最新版本。另外,给其他相关技术打上最新的补丁可以确保最大限度的安全。

  9.控制文件系统访问。

  默认情况下,PHP可使用fopen()等函数来访问文件。open_basedir命令提供了访问。首先,始终要将open_basedir命令设成/var/www/html目录。将它设成其他任何目录会导致安全问题。
 

  
 

  10. 控制POST大小。

  我们的最后一个PHP安全要点是控制POST大小函数。HTTP POST函数使用客户端的浏览器,将数据发送到Web服务器。比如说,用户可能上传证书,然后发送到Web浏览器以便处理。一切都运行顺畅,直到有一天黑客企图发送庞大的文件来耗尽服务器资源。这很可能会导致服务器崩溃或响应缓慢。为了保护服务器远离这个漏洞,就需要设置POST大小。POST大小可以在/etc/php.d/security.ini文件里面加以设置。
 

  
 

  结束语

  安全是广大Web开发人员和Linux管理员最关注的问题之一。如果采取了上述要点,你势必可以加强开发环境和PHP Web应用程序方面的安全。要是你认为我们遗漏了重要的内容,欢迎留言补充。

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


(责任编辑:宋编辑)

分享到:

更多
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
  • 微笑/wx
  • 撇嘴/pz
  • 抓狂/zk
  • 流汗/lh
  • 大兵/db
  • 奋斗/fd
  • 疑问/yw
  • 晕/y
  • 偷笑/wx
  • 可爱/ka
  • 傲慢/am
  • 惊恐/jk
用户名: 验证码:点击我更换图片
资料下载专区
图文资讯

黑客就是这么玩自己:入侵电子锁把自己电到

黑客就是这么玩自己:入侵电子锁把自己电到

不是每个安全大会上的演示都能顺利完成:坏小子黑客瑞恩和杰里米,就在制作世界上首个...[详细]

Linux管理员不可不知十大PHP安全要点

Linux管理员不可不知十大PHP安全要点

PHP是使用最广泛的脚本编程语言之一。市场份额颇能说明其主导地位。PHP 7已推出,这个...[详细]

保护工控系统网络安全的关键三步

保护工控系统网络安全的关键三步

当前,工业控制系统(ICS)面临一系列数字威胁。其中两个方面尤其突出。一方面,数字攻...[详细]

内网渗透——网络环境的判断

内网渗透——网络环境的判断

前言 对于一个内网来说,当我们拿到了一个机器(例如webshell)之后,首要的就是内网信...[详细]

窃取服务凭证以实现域完全控制

窃取服务凭证以实现域完全控制

前言 绕过Win10系统Credential Guard防护功能,窃取服务凭证进行横向渗透。 摘要 Cybe...[详细]

返回首页 返回顶部