在解析PHP文件之前对其进行操作
我已经设法为php编写了一个小型的可编译扩展,它在每个ZEND_RINIT上打印“test” 我用一个加载多个其他文件的php文件对其进行了测试,该文件再次加载其他文件[…]。问题是,扩展只打印“test”一次,所以我假设它不会在每次加载新文件时启动,我如何让扩展这么做 此外,该事件在加载文件之前触发,这是我想要的,但因此zend_get_executed_filename()为空,我无法获取文件内容 我的最终目标是在执行脚本之前验证每个文件。我计划通过验证附加到文件的文件签名来实现这一点 伪代码验证:在解析PHP文件之前对其进行操作,php,php-extension,Php,Php Extension,我已经设法为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的所有文件加载函数