php – 什么情况需要使用eval(),因为没有其他选择?

我知道为了速度和安全性原因,应该避免在 JavaScript中使用eval.但就PHP而言,很少提及安全性.更常见的是,由于使用了eval,因此你的程序运行速度比它应该慢.

在什么特定情况下你应该使用eval,因为没有别的办法吗?

为清楚起见:

我们不是在谈论用户提供的数据.因此,问题集中在纯粹和完全受控的服务器端有效使用eval.

PHP中使用eval评估代码的安全性问题与Javascript中的相同:如果您评估某些代码,则必须确定它来自何处,以及它包含的内容.

安全影响甚至可能更大,因为PHP可以访问您的数据库(以及其他内容) – 这意味着它可以用来窃取/破坏您的应用程序依赖的几乎所有信息!

在Javascript中,他们说“eval是邪恶的”;它在PHP中可能也是如此,它在Javascript中也是如此.

现在,关于你无法避免使用eval的具体情况……好吧,在PHP开发中作为我的日常工作4年,我不记得曾经在我自己的代码中使用过eval ^^

你需要eval的情况的例子仍然是你在数据库中存储一些代码,而不是在文件中缓存它(可能包括在内) – 这种情况发生在一些允许部分PHP代码的CMS中例如,在管理部分输入.

相关文章

Hessian开源的远程通讯,采用二进制 RPC的协议,基于 HTTP 传输。可以实现PHP调用Java,Python,C#等多语...
初识Mongodb的一些总结,在Mac Os X下真实搭建mongodb环境,以及分享个Mongodb管理工具,学习期间一些总结...
边看边操作,这样才能记得牢,实践是检验真理的唯一标准.光看不练假把式,光练不看傻把式,边看边练真把式....
在php中,结果输出一共有两种方式:echo和print,下面将对两种方式做一个比较。 echo与print的区别: (...
在安装好wampServer后,一直没有使用phpMyAdmin,今天用了一下,phpMyAdmin显示错误:The mbstring exte...
变量是用于存储数据的容器,与代数相似,可以给变量赋予某个确定的值(例如:$x=3)或者是赋予其它的变...