3.2.5.#绕过
这里我使了一下直接使用#并不能绕过,需要输入编码#才能够生效,在绕过的时候需要注意一下。
这里也是一样需要使用编码 进行绕过,不能直接输入空格。
1)设置白名单:若是在编写代码的时候能够确定文件包含的文件名的时候,那么最好使用白名单进行参数传入。
2)过滤危险字符:由于Incbude/Require可以对PHP Wrapper形式的地址进行包含执行(需要配置php.ini), 在Linux环境中可以通过"…/…/"的形式进行目录绕过,所以需要判断文件名称是否为合法的PHP文件。
3)设置文件目录:PHP配置文件中有open_basedir选项可以设置用户需要执行的文件目录,如果设置目录的话,PHP仅仅在该目录内搜索文件。
4)关闭危险配置:PHP配置中的allow_url_include选项如果打开,PHP会通过Include/Require进行远程文件包含,由于远程文件的不可信任性及不确定性,在开发中禁止打开此选项,PHP默认是关闭的。
,