php钩子核心功能

时间:2012-07-29 14:30:45

标签: php security hook core

我想在执行之前挂钩/或替换标准核心功能,例如我要阻止includerequire访问任何脚本。有没有办法让它没有任何额外的.dll?或者另一种情况is_array($myarr);我将挂钩array($myarr) === $myarr;看起来更快)以避免创建额外的类和函数。

Ps还有一个问题:如何防止所有PHP执行一段时间后?我有php部件<?=$myvar?>的html模板我希望在我的脚本结束工作时防止短的sintax和执行,我必须尝试什么?

2 个答案:

答案 0 :(得分:2)

关于标准函数的钩子:没有外部模块就没有办法做到这一点。 APD PECL module 我会做的。

rename_function('require', 'internal_require'); // saving reference to original function
override_function('require', '$filename', 
                  'print "require called"; internal_require($filename);');

第二个问题不是很清楚。您想要将标准is_array函数挂钩到array()词法构造或(array)类型转换吗?

关于停止php解释:看一下__halt_compiler函数。但请记住,成功的php块将只嵌入HTML中(因此对每个人都可见)。

答案 1 :(得分:0)

如果要禁用功能,可以使用安全模式,但不建议使用它。正如疯狂的朋友所说,__ halt_compiler只是将文本下面的所有内容发送给它。请记住,它只能从最外层范围调用 - 即。不在花括号内(如果,循环,函数等)