苏霍辛的末日; 下一步是什么?
很多年了, 我热心地使用 苏霍辛 与 Apache2 或 PHP - fpm Nginx Web 服务器上的 PHP5 的任何实现一起,以抵御 SQL 注入和其他常见的 Web 攻击. 事实上, Php5 是如此灾难性, 在其核心安全性方面, 和它的功能和模块, 我从来没有设想使用它, 没有任何重大的硬化, Suhosin 提供.
由于 Php5 已折旧, 我的遗产程序都消失了, 我只剩下几个 PHP7 的实现, 没有可用的 Suhosin 补丁.
虽然, 在技术上仍然有可能将 Suhosin 添加到 Php 7.0 和 7.1 (前阿尔法 = 不用于生产), 公平地说, 该项目早已消失, Php7 已经证明, 它 可能会很麻烦 就像它是它的前身. 当我正在考虑 WAF 的新功能和 PHP7 的核心安全性时, 这些是我附带的一些解决方案:
禁用不良或不必要的功能
PHP 中内置了许多有风险的函数,这些函数具有潜在的危险性,默认情况下应在“php.ini”中禁用. 您可以使用以下命令找到配置文件,并通过 vi 或 nano 禁用这些功能.
php -i | grep "php.ini"
请注意: 如果您同时运行各种版本的 PHP,或者该程序作为另一个第三方应用程序的一部分安装, 那么很有可能您安装了多个“php.ini”,并且不清楚Web服务器加载了哪一个. 确保您正在编辑正确的版本 (php -v).
在“php.ini”文件末尾添加以下行, 确保您保存了文件, 并重新启动网络服务器. 您可以了解这些 PHP 函数中的每一个 在此地址. 作为测量的动作, 您可能希望逐个添加它们,以确保它不会对您的应用程序产生负面影响.
disable_functions = popen, eval, leak, exec, shell_exec, curl_exec, curl_multi_exec, parse_ini_file, mysql_connect, system, phpinfo, escapeshellarg, escapeshellcmd, passthru, symlink, show_source, mail, sendmail, proc_open, proc_nice, proc_terminate, proc_get_status, proc_close, pfsockopen, posix_kill, posix_mkfifo, posix_setpgid, posix_setsid, posix_setuid
禁用寄存器全局变量和 Base64
注册全局是PHP的一个函数,它允许将URL的输入数组转换为代码中的变量. 因此, 攻击者可以利用任何可能易受攻击的代码,该攻击者可以使用HTTP GET或POST请求传递恶意数组.
通过在“php.ini”末尾添加以下行,可以轻松禁用寄存器全局. 不要忘记重新启动Web服务器以执行更改.
register_globals = Off
就像注册全局一样, Base64 是另一个通常不必要的功能,它为恶意后门打开了大门. 您可以通过在“php.ini”的末尾添加以下行来永久禁用 Base64 解码器.
base64_decode = Off
帖子免责声明
观点, 信息, 或表达的意见仅代表作者的意见,并不一定代表其雇主或他所属组织的意见.
本文中包含的信息仅供一般参考之用. 该信息由Farhad Mofidi提供,同时他努力保持信息的最新性和准确性, 他不作任何形式的陈述或保证, 明示或暗示, 关于完整性, 精度, 可靠性, 网站的适用性或可用性. 法哈德不作任何陈述或保证. 或任何信息, 出于任何目的包含在任何帖子中的产品或相关图形.
也, 人工智能可以用作提供建议和改进某些内容或句子的工具. 想法, 思潮, 意见, 最终产品是作者原创和人造的.