exakat 0.10.5评论exakat.0.10.5 review

exakat.0.10.5(代码名称:Tiger Power的不朽)没有不少于六个新分析仪和Zend框架报告的重大升级。以下是exakat 0.10.5审查。

可以是可庸解的论点

exakat.现在报告可能是键入可调用的参数。可调用涵盖PHP的每种形式的PHP:字符串,阵列和闭包。每当参数用作本机函数或变量函数函数中的回调参数时,据报道将被称为可调用。

<?php
function foo($array, $callable) {
    return array_map($array, $callable);
}
?>

这是一个实验,这将导致我们到一个‘typehint’报告。此报告将收集可从代码中推断的类型。可调用是一个简单的目标,并且正在进行更多的实验。

编码的字母

PHP有几种方法来编码字符:这涵盖了以编程方式未使用的字符,喜欢表意外或特殊字符。也可以编码常见字符,如字母,数字或某些调点。这是由恶意软件使用以避免检测。例如,此代码使其难以阅读eval($ _ get [‘z’]);:

<?php
  $x='e\0126al';$y=”_G\x45T”;$x($$y['z']);
?>

exakat现在报告包含字母,数字和大多数标点符号的任何字符串,其Unicode代码点低于128。

奇怪的变量和常量名称

谁想回来‘$tihs’?或者使用着名的有用的常量Direcotry_separator?那些很少见,但他们发生了。我们现在有一个 生长集合 他们:他们都在某人身上找到’S代码。目前,我们涵盖变量,常数和方法。此外,随意发送给我们自己(它可能真的是朋友’s mistake but we won’无论如何都披露了名称)。

太多的findby *

最后,一个新的实验:从...开始定义超过5种方法的课程‘findBy’据报道。这个想法是通过标准类替换这么多方法,以收集所有约束,并在依赖注入时运行。这总是比硬编码所有可能性及其组合更好。
这是第一步,正如我相信的那样‘findBy’可能不是目标的唯一前缀或后缀。如果您对目标有其他前缀,请向我们删除一下 @Exakat.。由于Alexis建议这种分析。

array_merge.()有一个参数不是没用的

我们更新了‘useless instructions’ analysis, removing array_merge.() 和 array_merge._recursive() 只有一个论点。合并一个简单的数组时无用,看起来php在合并时清理键。 array_merge()确实保留了字符串键,但reindex按顺序重新键。感谢Mark Ba​​ker指出它。

<?php
  $array = array( 1=>1, 'a' => 'a', -1 => 1);
  $array = array_merge($array);
  //$array = array( 1=>1, 'a' => 'a', 2 => 1);
?>

快乐的PHP代码审计

exakat.0.10.5带来了一负载新分析。在引擎盖下也有相当多的其他修复和边缘案例。所有300多个分析仪都呈现在 译文,包括经典‘没有布尔默认‘. Download Exakat on exakat.io.,升级它‘exakat.phar升级-u’ and 像我们在github上。