禁止在PHP中使用某些函数

时间:2015-07-28 12:02:03

标签: php function

我有一个应用程序,它读取textarea并将textarea作为PHP文件运行。

textarea内容保存在txt文件中并与more tools --> developer tools一起运行,但我只想允许用户使用eval(file_get_contents('myfile.txt'));echo语句,if,{{ 1}}不使用for函数和其他函数,如while

修改 再解释一下:如何使用像mysql和文件函数这样的php函数禁用特定文件?

有没有选择呢?

2 个答案:

答案 0 :(得分:0)

另一种方法,你可以试试php沙箱: https://github.com/fieryprophet/php-sandbox

答案 1 :(得分:0)

好吧,也许你可以使用这个解决方案。 php override_function。 如果你真的想使用eval,并使其安全。你要努力工作。但基本上如果你不想写你的私有php解析器,如customEval()。你可以覆盖php本机函数

override_function('file_put_contents', '$a', 'echo file_put_contents not allowed...;');

该解决方案的问题:如果您在eval()之后需要其中一个函数,则无法使用它们。除非你重写覆盖。第二个问题,重写列表可能很长(: