

新闻资讯
技术学院必须禁用 allow_url_include 防止远程代码执行,需确认 CLI 和 Web 环境配置、修改正确 php.ini 文件、设为 Off(非小写或 false)、重启对应服务并验证生效。
PHP 安装后必须禁用 allow_url_include,否则远程代码执行风险极高——它允许通过 include()、require() 直接加载 HTTP/FTP 等外部 URL,攻击者可轻易植入恶意脚本。
allow_url_include 是否已启用运行以下命令快速检查:
php -i | grep allow_url_include
若输出为 allow_url_include => On 或值为空(默认 On),说明未加固。注意:CLI 和 Web SAPI(如 Apache/FPM)可能使用不同 php.ini,需分别验证:
info.php,内容为 ,浏览器访问后搜索 allow_url_include
php --ini 查看加载的配置路径,再 grepphp.ini 中禁用该指令找到正在生效的 php.ini(不是 php.ini-development 或 php.ini-production 模板),编辑并确保存在以下行:
立即学习“PHP免费学习笔记(深入)”;
allow_url_include = Off
常见误区:
php.ini,实际应改 FPM 的配置(如 /etc/php/8.2/fpm/php.ini)conf.d/ 目录下,检查是否有其他 .ini 文件重设了该值allow_url_include = off(小写)或 allow_url_include = false —— PHP 只认 Off 或 On(首字母大写)修改后必须重启对应服务,否则配置不加载:
sudo systemctl restart apache2
sudo systemctl restart php8.2-fpm(版本号按实际调整)php-fpm,Nginx 不需要重启再次运行 php -i | grep allow_url_include,确认输出为 allow_url_include => Off。还可写个测试脚本验证运行时行为:
议(避免绕过)仅关 allow_url_include 不够,还需同步处理依赖项:
allow_url_fopen 应设为 Off:虽然不影响 include,但它是 file_get_contents()、fopen("http://...") 的开关,常被攻击链利用include,即使 allow_url_include=Off,若代码本身有漏洞仍可能触发 SSRF 或本地文件包含disable_functions 中加入 include, require, include_once, require_once —— 但需谨慎,可能破坏正常逻辑真正起作用的是配置+重启+验证三步闭环,漏掉任意一环都等于没做。很多线上系统看似改了 php.ini,却因没重启 FPM 或查错了配置路径,导致防护形同虚设。