功能膨胀
写插件的时候最容易踩的坑是:发现一个漏洞后,忍不住给插件加了越来越多功能——从"验证这个漏洞存在"变成"利用这个漏洞搞事情"。thinkphp_rce 插件的 exploit 方法就是这么来的。
加 exploit 本身没问题,但需要和 verify 保持清晰的界限。我定了一条规则:verify 必须返回可复现的证据,而 exploit 只做执行。如果 exploit 的输出作为证据不够充分(比如反序列化 RCE 的响应可能只是"命令已投递,但执行结果未知"),那就不适合放在证据链里。这条规则还在验证阶段,说不定后续版本会推翻重来。
写插件的时候最容易踩的坑是:发现一个漏洞后,忍不住给插件加了越来越多功能——从"验证这个漏洞存在"变成"利用这个漏洞搞事情"。thinkphp_rce 插件的 exploit 方法就是这么来的。
加 exploit 本身没问题,但需要和 verify 保持清晰的界限。我定了一条规则:verify 必须返回可复现的证据,而 exploit 只做执行。如果 exploit 的输出作为证据不够充分(比如反序列化 RCE 的响应可能只是"命令已投递,但执行结果未知"),那就不适合放在证据链里。这条规则还在验证阶段,说不定后续版本会推翻重来。