文件包含漏洞

文件包含漏洞是什么?

程序开发人员通常会把可重复使用函数或语句写到单个文件中,形成“封装”。在使用某个功能的时候,直接调用此文件,无需再次编写,提高代码重用性,减少代码量。这种调用文件的过程通常称为包含。
程序开发人员都希望代码更加灵活,所以会把被包含的文件的路径设置为变量,来进行动态调用(包含)但正是由于这种灵活性,如果被包含文件的路径客户端可控,造成任意文件包含漏洞。
几乎所有的脚本都会提供文件包含的功能,文件包含漏洞在PHP 的Web 应用中居多,在JSP/ASP/ASPNET程序中比较少。

文件包含是php的一个功能,是程序员把代码、函数和语句写入文件中进行封装,调用文件的过程就叫做包含。所谓文件包含漏洞,是指在代码中引入其他文件作为php文件执行时,未对文件进行严格过滤,导致用户指定任意文件,都作为php文件解析执行

静态包含和动态包含

  1. 静态包含在转换成为java文件的时候将包含文件的内容“复制”到主体文件,然后作为一个整体编译。最终编译为一个java文件。
  2. 动态包含是各个jsp文件分别转换,分别编译。最终编程成多个java文件。

php文件包含有什么特点?

​ 特点

  • 无视文件扩展名读取文件内容。
  • 无条件解析PHP 代码,为图片木马提供了出路。

文件包含漏洞怎么防御?

  • 尽量少的使用动态包含
  • 严格过滤被包含文件的路径
  • 将参数allow_url_include 设置为Off;
  • 使用参数open basedir 限定文件访问范围

你可能感兴趣的:(网络安全,安全,网络,文件包含漏洞)