1. 删除没必要要的模块。php
PHP随带内置的PHP模块。它们对许多任务来讲颇有用,可是不是每一个项目都须要它们。只要输入下面这个命令,就能够查看可用的PHP模块:html
# php - m
一旦你查看了列表,如今能够删除没必要要的模块。减小模块的数量有助于提升你所处理的Web应用程序的性能和安全web
2. 限制PHP信息泄露。shell
平台泄露关键信息司空见惯。好比说,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 OKcurl
X-Powered-By: PHP/7.0.10函数
Content-type: text/html; charset=UTF-8post
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