在解析之前操作 PHP- 文件
Manipulate PHP-Files before they are parsed
我已经设法为 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.
的所有文件加载函数
我已经设法为 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.
的所有文件加载函数