本地包含与远程包含

文章讨论了PHP中的本地文件包含和远程文件包含功能,强调了参数可控可能导致的安全风险。本地文件包含可通过include、require等函数实现,而远程文件包含需开启allow_url_include选项。任意文件包含是潜在的漏洞,且远程包含在Windows下可能通过SMB绕过限制。文件包含时不应出现?字符,否则会引发错误。
摘要由CSDN通过智能技术生成

本地包含与远程包含

本地文件包含

文件包含:重复使用相同的代码

相关函数:includeinclude_oncerequirerequire_once
无论使用什么后缀,只要被文件包含相关函数导入,就会作为PHP代码执行。也就是说如果被导入的文件参数可控,就会造成上传任何文件都能拿下服务器。

相关函数区别

  • include 用到临时加载

  • include_once 检测之前是否加载过,如果有就不包含了

  • require 先加载,然后整合原有代码,然后一起执行[影响整体]

  • require_once 检测之前是否包含过,如果有就不包含了

文件包含并不是漏洞,任意文件包含才是漏洞,比如说任意文件包含包含了恶意文件

远程文件包含

默认情况下远程文件包含是不可用的,需要在设置中打开allow_url_include=On

  • windows环境下,可以通过SMB文件共享来绕过allow_url_include=On

注意:

文件包含是不能出现?的,如果出现了就会报错。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值