记录黑客技术中优秀的内容,传播黑客文化,分享黑客技术精华

一. PHP代码审计中常用代码调试函数与注释

2020-09-01 04:54

安全帮



出品|安全帮(www.secbang.com)

概述:安全帮专注安全教育


【本章目的】

掌握代码审计中常用的代码调试函数,单引号与双引号之间的区别

【本章原理】

开发中,经常会查看变量的值,因此经常会将变量的值输出到页面以便于查看。这就需

要用到调试函数。


【测试步骤】



 1.1 双击wampmanager.exe 启用warp


 1.1 函数调试 echo/print

这是最简单的输出数据的调试方法,一般用来输出变量值,或者不确定程序执行到了哪个分支的情况下使用。可以一次输出多个值,多个值之间用逗号分隔。test.php代码中,定义了一个名为$a的数组,还定义了变量$secbang,其值为tsecbang。echo $secbang 输出变量 的值,即secbang


函数 打印一个值(它的参数),只能打印出简单类型变量的值 如int,string。这里使用print $secbang 效果和echo相同

 1.2 print_r ,var_dump,  var_export  debug_zavl_dump

这个主要是用来输出变量数据值,特别是数组和对象数据,一般我们在查看接口返回值,

或者某些不太确定变量的时候,都可以使用这几个函数。


NO1 .print_r()可以把字符串和数字简单地打印出来,而数组则以括起来的键和值的列表形式显示,并以Array开头。但print_r()输出布尔值和NULL的结果没有意义,因为都是打印"\n"。因此用var_dump()函数更适合调试。其格式很整齐,跟var_dump 的区别是没有类型数据,并且布尔值的false和值NULL输出为空。使用echo $a输出数组时只能输出Array,并不能输出数组的值。

NO2 .print_r($a)既可以输出Array,还能输出数组的值

NO3 .var_dump()判断一个变量的类型与长度,并输出变量的数值,如果变量有值输的是

变量的值并回返数据类型。



NO4 .var_dump($secbang)输出变量时,不仅输出变量值,还输出数据类型和长都


NO5 .var_export()输出或返回一个变量的字符串表示。此函数返回关于传递给该函数的变量的结构信息,它和var_dump()类似,不同的是其返回的表示是合法的PHP代码。使用var_export($a);输出数组a的值。需要注意的一点是,var_export()对于资源型的变量会输出NULL度

NO6 .debug_zval_dump()输出结果跟var_dump 类似,唯一增加的一个

值是refcount,就是记录一个变量被引用了多少次,这是php的copy on write(写时复

制)的机制的一个重要特点

 
1.3 注释

NO1 . 用//开头,作为单行注释

<?php 

//Author:secbang.com

echo "test"

?>

NO2 . 用#开头,作为单行注释

<?php

#Author:secbang.com

echo "test"

?>

 

NO3 . 用/*开头 */结尾,作为多行注释

<?php

/*Author:secbang.com

这是一个测试

*/

echo "test"

?>

1.3  双引号,单引号区别

NO1. 在PHP代码中,双引号解析变量,即双引号里面的字段会经过编译器解释,然后再当作HTML代码输出。使用echo “$str”输出变量,解析变量$str,故输出变量$str的值simpleware4.


NO2.  而单引号不解析变量,即单引号里面的字段不进行解释,直接输出。使用echo ‘$str’不解释变量$str,所以输出$str。

作业:PHP代码中常用的调试函数有哪些?
作业提交加群 有老师来批改作业

知识来源: https://mp.weixin.qq.com/s?__biz=MzI3NTcwNTQ2Mg==&mid=2247484460&idx=1&sn=69a189e46fceddaf3223a8f7d151ad2d&chksm=eb01ff35dc767623452a22a8855ef0da0e4b44fb6b3a75d6c1ba0ed21037500ee741dc97ff37&scene=126&

阅读:17749 | 评论:0 | 标签:审计 PHP

想收藏或者和大家分享这篇好文章→复制链接地址

“一. PHP代码审计中常用代码调试函数与注释”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

ADS

标签云