File Inclusion(文件包含漏洞)
在各种开发语言中都提供了内置的文件包含函数,其可以使开发人员在一个代码文件中直接包含(引入)另外一个代码文件。
通过文件包含函数将文件包含进来,直接使用包含文件中的代码。
大多数情况下,文件包含函数中包含的代码文件是固定的,因此也不会出现安全问题。
但有些时候,使用函数包含文件时,被包含的文件就设置为了函数的变量。
通过动态变量来引入需要包含的文件时,用户可以对变量的值可控而服务器端未对变量值进行合理地校验或者校验被绕过,这样就导致了文件包含漏洞。
通常文件包含漏洞出现在PHP语言中。
PHP中的常用文件包含函数:
include()
include_once()
require()
require_once()
include()
代码执行到这个函数时,include() 函数才行使功能,将文件包含进来。
如果发生错误会给出一个警告,继续向下执行。
include_once()
功能和前面的include() 函数是一样的,区别在于当重复调用同一文件时,程序只会调用一次。
require()
与include() 函数的区别在于,当 require() 这个文件包含函数执行错误的时候,函数会输出错误信息,并且整个脚本会停止运行。而 include() 函数会继续向下执行。
require_once()
功能和require() 函数相同,区别在于当重复调用同一文件时,程序只会调用一次。
例如:
&

最低0.47元/天 解锁文章
580

被折叠的 条评论
为什么被折叠?



