代码审计(Code audit)是一种以发现程序错误,安全漏洞和违反程序规范为目标的源代码分析。 软件代码审计是对编程项目中源代码的全面分析,旨在发现错误,安全漏洞或违反编程约定。 它是防御性编程范例的一个组成部分,它试图在软件发布之前减少错误。

  • require ‘flag.php’ #文件包含函数(高)
  • count($value) #获取数组成员数(低)
  • chr($value) #转ascii
    PHP会对$value进行256的mod运算,取余
  • unset($value) #销毁变量
  • intval($value) #转整数
    PHP5 无法处理16进制字符串
  • ereg(表达式,字符串,regs)
    ereg函数是php4-5的正则匹配函数,如果没有找到匹配或出错则返回 FALSE。如果没有传递入可选参数 regs 或者所匹配的字符串长度为 0,则本函数返回 1。ereg函数在php7中已弃用,存在%00截断漏洞。
  • is_numeric($value) #判断是否为数字或者数字字符串,bool型
  • empty #判断一个变量是否被认为是空的。当一个变量并不存在,或者它的值等同于FALSE,那么它会被认为不存在。如果变量不存在的话,empty()并不会产生警告。bool型
  • preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] ) : int
    preg_match()返回 pattern 的匹配次数。 它的值将是0次(不匹配)或1次,因为preg_match()在第一次匹配后 将会停止搜索。preg_match_all()不同于此,它会一直搜索subject 直到到达结尾。 如果发生错误preg_match()返回 FALSE。
  • json_encode — 对变量进行 JSON 编码
    这个编码不是值把json格式的编码,是把其他格式的编码成json,和json_decode没关系。
  • json_decode — 对 JSON 格式的字符串进行解码
    这个解密是指识别json格式的字符串,不和base64那种一个编码一个解密一样,和json_encode没关系。
  • strcmp — 二进制安全字符串比较
    比较两个字符串,如果 str1 小于 str2 返回 < 0; 如果 str1 大于 str2 返回 > 0;如果两者相等,返回 0。
  • eregi — 不区分大小写的正则表达式匹配
    本函数和 ereg() 完全相同,只除了在匹配字母字符时忽略大小写的区别。
  • strpos — 查找字符串首次出现的位置
    完全匹配返回0,不完全匹配返回首次出现的位置;匹配失败返回flase