exakat. 1.4.4 review
exakat. 1.4.4 review

exakat. 1.4.4 review

本星期’S版包含大量的引擎盖工作。我们已经致力于消除几个内部分析,例如‘Used Classes’,提供基础‘Unused Classes’ : Unused classes are classes that are not used (sic), and used classes comes in a surprising number of situations : new, ::, use, etc. Those elimination lead to better performances : less work to do, less database storage and fewer dependencies. Besides that, we added support for ext/seaslog extension, revamped the PHP directive report for disable\_functions and disable\_classes and passed the 3000 Unit Test limit. Exakat 1.4.4 review, and that’s the way it is.

报告isable_functions / disable_classes

exakat报告了应在PHP.ini中设置的重要PHP指令的全面清单。通过审核代码,exakat检测所有使用的功能,并从它们中提取有影响的指令列表。

disable\_functions and disable\_classes are slightly different for that : they list PHP native functions and classes that should be removed and not made available. Usually, if you want to avoid including some PHP features, because you don’使用它们,然后您只需在编译时忽略它们。

然而,还有一个经典的情况:您可以依赖标准二进制文件,而不是编译PHP,无论是由您的操作系统分发提供还是由贵公司审核。此时,已完成编译,而且应该使用二进制文件而无需修改。

此时,您最终结束了支持多个数据库和PHP套接字的二进制文件,而您的代码没有使用它们。事实上,如果漏洞利用漏洞,这将通过给予更多功能来扩展入侵者的可能性。

This is where disable\_functions and disable\_classes have their usage : they hold a list of PHP native functions that are barred from being used. Even if compiled, they won’t be authorized.

作为一种安全措施,排除这些功能和课程是一个好主意。以下是您可以考虑的PHP函数和类列表。

  • exc.
  • Passthru.
  • shell_exec.
  • 系统
  • Proc_open.
  • 司_nice.
  • 司_terminate.
  • 得到地位
  • 司_close.
  • pop
  • pclose.
  • 卷曲_exec.
  • 卷曲exc.
  • show_source.
  • Symlink.
  • fsockopen.
  • pfsockopen.
  • 插座_connect.
  • 插座创造
  • 插座创造一对
  • 插座_create.
  • Symlink.
  • 邮件
  • Apach.孩子终止
  • Apach.得到模块
  • Apach.得到版本
  • Apach._getenv.
  • Apach._note.
  • Apach._setenv.
  • PCNTL_ALARM.
  • PCNTL._errno.
  • PCNTL._exec.
  • PCNTL._fork.
  • PCNTL.得到last_error.
  • PCNTL._getpriority.
  • PCNTL._setpriority.
  • PCNTL.信号派遣
  • PCNTL._signal.
  • PCNTL._sigprocmask.
  • PCNTL._sigtimedwait.
  • PCNTL._sigwaitinfo.
  • PCNTL._strerr.
  • PCNTL_WAIT.
  • PCNTL_WAIT.pid.
  • PCNTL._wexitstatus.
  • PCNTL._wifexited.
  • PCNTL._wifsignaled.
  • PCNTL._wifstopped
  • PCNTL._wstopsig
  • PCNTL._wtermsig
  • DL.
  • 泄露
  • posix_kill.
  • posix_mkfifo.
  • posix_setpgid.
  • posix_setsid.
  • posix_setuid.

班级

  • ph

Note that eval is not in this list, although it would probably be one of the first to be there. eval is not a PHP function, but a language construct : it can’t禁用指令。

作为性能措施,列表越长,较慢是PHP。检查您的性能的实际影响,理想情况下,使用较小的功能编译PHP:较少的代码,漏洞更少。

通过3000个单元测试

exakat.’S分析现已超过3000个单元测试。每当新分析构建时,添加了这些单元测试,就像文档一样。

因此,最小测试是1,最大值为22:这是为了 无用的指示,这往往有很多变化和特殊情况。平均测试次数为2.26。

 

还有11469个断言:每个测试涵盖多种情况。有时,可以在一次测试中收集多种情况,而不会互相扰乱。其他人,必须分裂,导致更多的测试。就像测试一样,更多的断言,更好。

我们想要什么,我们不喜欢什么’t want

分析的单元测试有双方:他们总是包括我们期待的分析,以及我们不期望的东西。事实上,第二个元素可以被重建为:‘我们想要避免的东西 ’.

每个测试实际上是用我们想要在代码中找到的微妙模式的模拟构建,以及我们想要避免的模式的模式。您可以随时建议将两个str_replace()合并到一个同一变量时,但与那些str有关_替换()是三到四个?我们只会报告第一个,而不是中间人。所有这些情况都是最好的提到的。

像往常一样,WAND的列表比不需要的列表更短:毕竟,我们可以列出分析不应报告的很长的元素列表。作为拇指的规则,在写作时间生成的不需要的它的简短列表,并且此列表在其失败时使用测试查找的任何内容增强。通常,在两次或三次迭代之后,不需要的名单稳定并获得安静。

较旧分析,更多UT

一个有趣的点是旧分析有更多的测试。随着一个分析变老,确定了更多情况,他们最终作为测试:这样,任何重构都将继续警告那些对记住很重要的重构。这不是一个严格的规则:一些分析足够简单,需要一个ut,并且稳定。但是,一般来说,年龄较大的意味着更多UT,意味着更多的经验和专业知识。

遵循测试数量

随时运行全套UT,CSV文件会收集正在运行的当前测试数。这提供了一些测试数量的一般视图及其进化。我们喜欢和座右铭一起去:更多的测试,更好。那些与发动机的信任很重要。

支持新的延期:景点

海啸 is ‘PHP的有效,快速,稳定的日志扩展’,Chitao.gao。它是PSR-3兼容,专注于表演。

快乐的PHP代码评论

所有357分析仪都介绍在文档中,包括担心 应该使用合并:PHP 7介绍了??运算符替换较长的结构以在未设置变量时设置默认值。

它是一个常规代码现代化,其影响PHP项目的54%。大学教师’使用昨天的功能,现在采用它!

您可以查看图库中的所有exakat报告: exakat画廊.

下载exakat.io,安装它 Docker.,升级它‘exakat.phar升级-u’ and like us on GitHub..