变量覆盖

变量覆盖:通常用定义的参数值替换原有变量值的情况。
容易存在变量漏洞的情况:
  • $$使用不当 
  • extract()函数使用不当
  • parse_str()使用不当
  • import_request_variables() 开启了全局变量注册等

extract()   

  • 当第二个参数为空或者EXTR_OVERWRITE时,变量注册如果遇到冲突会直接覆盖到原变量
  • 当第二个变量为EXTR_IF_EXISTS时,仅当原变量已存在而对其进行更新,否则不注册新变量。

parse_str()

    函数把查询字符串解析并注册为变量,主要用于页面之间传值。该函数在注册变量之前不会验证当前变量是否存在,如果存在会直接覆盖。

import_request_variables('GP')

    此函数只能用在  PHP4.1~PHP5.4
    import_request_variables(string $types,string $prefix)
    将GET/POST/Cookie 变量导入全局作用域,type指定需导入的变
原文地址:https://www.cnblogs.com/ihacker/p/11123296.html