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

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

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

为清楚起见:

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

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

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

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

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

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

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...