首页 - 技术 - Linux 管理员必须了解的 10 个 PHP 安全要点

Linux 管理员必须了解的 10 个 PHP 安全要点

2023-10-03 10:10
PHP 是使用最广泛的脚本编程语言之一。市场份额充分说明了其主导地位。 PHP 7 的推出使这种编程语言对当前的开发人员更具吸引力。尽管发生了一些变化,许多开发人员仍然对 PHP 的未来持怀疑态度。原因之一是 PHP 的安全性。 【www.gsm-guard.net快速翻译】PHP是使用最广泛的脚本编程语言之一。市场份额充分说明了其主导地位。 PHP 7 的推出使这种编程语言对当前的开发人员更具吸引力。尽管发生了一些变化,许多开发人员仍然对 PHP 的未来持怀疑态度。原因之一是 PHP 的安全性。 PHP 的安全性是开发人员最关心的问题。尽管 PHP 从内到外提供了可靠的安全性,但正确实现这些安全机制取决于开发人员。我们将在本文中为 Linux 管理员介绍几个 PHP 安全点。这些要点将帮助您保护 Web 应用程序并确保长期正常运行。 在开始之前,有必要了解我们正在处理的系统。出于演示目的,我们使用 Fedora。但是,这些要点应该适用于 Ubuntu 版本或任何其他 Linux 发行版。查看您的操作系统发行版的手册以获取更多信息。 让我们仔细看看我们系统环境的几个关键文件。您的文件应类似于或对应于以下内容: 默认网络服务器:Apache 文档根目录:/var/www/html PHP配置文件:/etc/php.ini 扩展配置目录:/etc/php.d/ 安全文件:/etc/php.d/security.ini 这些技巧将保护您的网站免受不同类型的常见攻击,例如 SQL 注入、XSS、跨站请求伪造、eval() 和文件上传攻击。可以在此处找到常见攻击的列表 (https://www.gsm-guard.net/top-10-php-security-vulnerability/)。 1.删​​除不需要的模块。 PHP 带有内置的 PHP 模块。它们对于许多任务都很有用,但并不是每个项目都需要它们。只需输入以下命令即可查看可用的 PHP 模块: #php-m 查看列表后,您现在可以删除不必要的模块。减少模块数量有助于提高您所使用的 Web 应用程序的性能和安全性。 2.限制PHP信息泄露。 平台泄露关键信息是很常见的。例如,PHP 会泄露版本及其安装在服务器上的事实等信息。这可以通过expose_php命令来实现。为了防止泄露,需要在/etc/php.d/security.ini中将该命令设置为off。 hide_php=关闭 如果您需要了解版本及其状态,只需针对网站地址运行简单的 Curl 命令即可获取该信息。 卷曲 - 我 http://www.gsm-guard.net/index.php 前面的命令将返回以下信息: HTTP/1.1 200 OK X-Powered-By: PHP/7.0.10 内容类型: text/html;字符集=UTF-8 3. 禁用远程代码执行。 远程代码执行是PHP安全系统中常见的安全漏洞之一。默认情况下,您的系统启用远程代码执行。 “allow_url_fopen”命令允许 require、include 或 URL 感知的 fopen 包装器等函数直接访问 PHP 文件。通过HTTP或FTP协议实现远程访问,导致系统无法防御代码注入安全漏洞。 为了确保您的系统安全可靠并远离远程代码执行,您可以将此命令设置为“关闭”,如下所示: allow_url_fopen=关闭allow_url_include=关闭 4. 记录 PHP 错误。 加强 Web 应用程序安全性的另一个简单方法是不向访问者显示错误。这将确保黑客根本无法损害网站的安全。需要在 /etc/php.d/security.ini 文件中进行编辑。 显示错误=关闭 现在您可能会想:完成这一步后,“开发人员如何在没有错误消息帮助的情况下进行调试?”开发者可以使用log_errors命令进行调试。他们只需在 security.ini 文件中将 log_errors 命令设置为“On”即可。 log_errors=打开 error_log=/var/log/httpd/php_scripts_error.log 5、合理控制资源。 为了确保应用程序的安全,控制资源非常重要。为了确保正确执行和安全,您需要限制 PHP 脚本执行。此外,解析请求数据所花费的时间应该受到限制。如果控制执行时间,脚本使用的其他资源(例如内存)也应该进行相应配置。所有这些指标都可以通过编辑 security.ini 文件来管理。 # 以秒为单位设置 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、系统、proc_open、popen、curl_exec、curl_multi_exec、parse_ini_file、show_source 您可以在此处了解有关禁用危险 PHP 函数的更多信息 (https://www.gsm-guard.net/blog/webhosting/dangerous-php-functions-must-be-disabled/)。 7. 上传文件。 如果您的应用程序不需要上传任何文件,则禁用上传文件的功能有助于提高安全性。如果想禁止用户上传文件,只需编辑/etc/php.d/目录下的security.ini文件,将file_uploads命令设置为OFF即可。 file_uploads=关闭 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 开发人员和 L​​inux 管理员最关心的问题之一。如果采取以上几点,您将能够加强您的开发环境和 PHP Web 应用程序的安全性。如果您认为我们遗漏了一些重要的内容,请留言添加。 原标题:Linux 管理员的 10 个 PHP 安全提示,作者:Damian Wolf 【51CTO翻译,合作网站转载请注明原文译者及出处:www.gsm-guard.net】