在解析 PHP 文件之前对其进行操作



我设法为php编写了一个小型的,可编译的扩展,可以在每个ZEND_RINIT上打印"test"。

我用一个加载多个其他文件的 php 文件对其进行了测试,这些文件再次加载其他文件 [...]。问题是,扩展名只打印"test"一次,所以我假设它不会在每次加载新文件时触发,我怎样才能让我的扩展名这样做?

此外,该事件在加载文件之前触发,这就是我想要的,但因此 zend_get_executed_filename() 为空,我无法获取文件内容......

我的最终目标是在执行脚本之前验证每个文件。我计划通过验证附加到文件的文件签名来做到这一点。

伪代码验证:

decrypt(signature, rsa.pub) = sha(filecontent)

伪代码签名:

signature = encrypt(sha(filecontent), rsa.priv)
file += signature

或者有没有更好的方法来验证文件(我希望它们被签名)在执行其中的脚本之前?

提前感谢!

ZEND_RINIT在

请求启动时调用,也就是当你执行php文件时。在执行 PHP 文件期间,它永远不会再次调用。仅在下次启动时。你必须找到一种方法来挂钩到PHP的所有文件加载函数。

相关内容

  • 没有找到相关文章

最新更新