文件包含
程序开发人员通常会把可重复使用的函数写到单个文件中,在使用某些函数时,直接用此文件,而无需
再次编写,这种调用文件的过程一般被称为包含。
一、原理和定义
为什么会产生文件包含漏洞?
程序开发人员都希望代码更加灵活,所以通常会将被包含的文件设置为变量,用来进行动态调用,但正
是由于这种灵活性,从而导致客户端可以调用一个恶意文件,造成文件包含漏洞。
以php,webapplication 中居多。
jsp,asp,很少
这与程序开发人员的水平无关,而问题在于语言设计的弊端。
文件包含常用函数
在php中提供了四种包含文件的函数
1.incudec() //找不到被包含的文件时只会产生警告(E_WARNING),脚本将继续执行;
2.incudec_once() //此语句和incudec()语句类似,唯一区别是如果该文件中的代码已经被包含,
则不会再次包含;
3.require() //找不到被包含的文件时会产生致命错误(E_COMPILE_ERROR),并停止脚本。
4.require_once() //此行语句和require()语句类似,唯一区别是如果该文件中的代码已经被包
含,则不会再次包含。
include_once() 和 require_once() 这两个函数只包含一次,适用于在脚本执行期想确保它只被包括
一次以避免函数重定