json_decode安全性

时间:2011-09-12 18:20:24

标签: php security json

PHP的json_decode()是否安全而不是eval()? eval()函数可以运行代码,但json_decode()也可以运行代码吗?

2 个答案:

答案 0 :(得分:6)

由于JSON只能表示数据,json_decode不会执行php代码。

然而,就像任何其他函数一样,json_decode的实现可能是错误的并且允许任意(二进制,而不是(仅)php)代码执行,例如使用buffer overflow。由于相对简单和广泛使用的代码,这是不太可能的,并且在php程序中没有什么可以或应该做的来减轻它。

答案 1 :(得分:1)

eval()json_decode()是两个不同的功能,我不知道为什么你认为它们是相似的。一个将字符串评估为PHP代码,另一个将JSON字符串解码。运行json_decode时不会执行任何操作。