zoukankan      html  css  js  c++  java
  • PHP代码审计学习_day2

    0x01 代码调试及Xdebug的配置使用

    (1)echo:最简单的输出数据调试方法,一般用来输出变量值或者不确定执行到哪个分支。
    (2)print_r、var_dump、debug_zval_dump:主要是输出变量的数据值。debug的输出结果和var_dump类似,唯一增加的一个值是refcount,记录一个变量被引用了多少次。
    (3)debug_print_backtrace:查看输出的调用栈信息。
    (4)exit():停止程序,无法运行后面代码。

    Xdebug的安装:https://www.cnblogs.com/linqingvoe/p/10907672.html

    Xdebug介绍

    Xdebug是一个开源的PHP程序调试工具,可以使用它来调试、跟踪及分析程序运行状态。Xdebug需要结合PHP的编辑工具来打断点、跟踪、调试及分析。

    Xdebug的配置

    指定Xdebug扩展文件的绝对路径
    zend_extension = "C:XXXphpphp-版本号extphp_xdebug.dll"
    启用性能检测分析
    xdebug.profiler_enable = on
    启用代码自动追踪
    xdebug.auto_trace = on
    允许收集传递给函数的参数变量
    xdebug.collect_params = on
    允许收集函数调用的返回值
    xdebug.collect_return = on
    指定堆栈跟踪文件的存放目录
    xdebug.trace_output_dir = "C:XXX mpxdebug"
    指定性能分析文件的存放目录
    xdebug.profiler_output_dir = "C:XXX mpxdebug"
    连接和监听主机和端口的调试客户端
    xdebug.remote_enable = on
    启动调试器协议dbgp
    xdebug.remote_handler = dbgp
    客户端的主机
    xdebug.remote_host = localhost
    客户端的端口
    xdebug.remote_port = 9000
    指定DBGP调试器处理程序
    xdebug.idekey = PHPSTORM
    注:以上的配置均在php.ini中

    0x02 审计中涉及的超全局变量

    全局变量
    在函数外面定义的变量,不能在函数中直接使用,因为它的作用域不会到函数内部。所以在函数内部使用的时候常常看到类似global $a;
    超全局变量
    作用域在所有脚本都有效。所以,在函数可以直接使用。除了$_GET,$_POST,$_COOKIE等之外的超全局变量保存在$GLOBALS数组中。
    global
    作用是定义全局变量,只应用于当前网页(包括include和require的所有文件)而不是整个网站。
    $GLOBALS
    用于在PHP脚本中的任意位置访问全局变量(从函数或方法中均可)
    POST(隐藏传参)
    GET(URL传参)
    $_REQUEST
    能从POST和GET中获取提交的数据,但是速度比较慢。尽量不要使用request。
    $_ENV
    包含服务器端环境变量的数组,可在PHP程序的任何地方直接访问。
    只是被动的接受服务器端的环境变量转换为数组元素。

  • 相关阅读:
    名字 地址 路由
    截断二进制指数退避
    硬件地址 软件地址
    基带信号 调制
    非对称数字用户线
    码分复用 码分多址
    时分复用 帧长度
    多模光纤 单模光纤
    码间串扰 奈氏准则 香农公式
    flask 文件下载 文件服务器 请求参数 函数修饰符
  • 原文地址:https://www.cnblogs.com/-an-/p/13347837.html
Copyright © 2011-2022 走看看