文件包含漏洞简介

本文深入探讨了文件包含漏洞的成因及其防御措施,解析了PHP中四种文件包含函数的使用场景与区别,包括include(), include_once(), require()和require_once()。同时,介绍了如何通过配置和过滤策略来有效防范文件包含攻击。
文件包含

为了更好地使用代码的重用性,引入了文件包含函数,可以通过文件包含函数将文件包含进来,直接使用包含文件的代码。程序员写程序的时候,不喜欢干同样的事情,也不喜欢把同样的代码(比如一些公用的函数)写几次,于是就把需要公用的代码写在一个单独的文件里面,比如 share.php,而后在其它文件需要使用时进行包含调用。

文件包含漏洞成因

在包含文件时候,为了灵活包含文件,将被包含文件设置为变量,通过动态变量来引入需要包含的文件时,用户可以对变量的值可控而服务器端未对变量值进行合理地校验或者校验被绕过,这样就导致了文件包含漏洞。

PHP文件包含的函数

include( )
当使用该函数包含文件时,只有代码执行到 include()函数时才将文件包含进来,发生错误时之给出一个警告,继续向下执行。

include_once( )
功能与 Include()相同,区别在于当重复调用同一文件时,程序只调用一次

require( )
require()与 include()的区别在于 require()执行如果发生错误,函数会输出错误信息,并终止脚本的运行。

require_once( )
功能与 require()相同,区别在于当重复调用同一文件时,程序只调用一次。

文件包含漏洞防御

PHP 中使用 open_basedir 配置限制访问在指定的区域
过滤.(点)/(反斜杠)\(反斜杠)
文件包含需要配置 allow_url_include=On(远程文件包含)、allow_url_fopen=On(本地文件包含) 。所以,我们可以将其关闭
使用白名单过滤,只能包含我们指定的文件

以上为文件包含漏洞一个简单的介绍,实践及具体介绍请看下面的链接
文件包含漏洞

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值