
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..