我想开发代码,其中我想拦截发送到PHP可利用函数(如eval())的数据。但是我的代码不应该编辑或触摸其中eval以任何方式存在的代码。
举个例子:
我使用拦截器代码创建一个PHP文件,并使用“require”在eval()(或任何其他PHP可利用函数)的目标PHP页面内调用它。怎么能成为可能?
答案 0 :(得分:2)
首先,PHP中的所有函数都可用于利用系统。
为了以这种方式改变PHP的行为,你需要修改PHP解释器本身 - 特别是你需要intercept或runkit PECL(或者自己重写解释器)。或者运行一个translataion程序将引用重新映射到(你的“可利用”函数列表)到包装器函数(然后在包含文件中指定这些包装器)。
答案 1 :(得分:0)
对我而言,听起来好像你想编写一个PHP扩展,可以拦截一些buid-in函数。我不知道一个好的教程,所以你想自己使用自己喜欢的搜索引擎。还有一个提示:xdebug已经为var_dump()
,print_r()
等做了类似的事情。所以也许你可以查看来源和玩具。祝你好运。