PHP   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何在php中安全使用eval?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我知道,只要有用户输入,有些人可能只会回答“从不”.但是假设我有这样的事情:

$version = $_requEST['version'];
$test = 'return $version > 3;';
$success = eval($test);

这显然是一种简化的情况,但是用户是否可以输入任何@L_197_3@作为版本来进行恶意处理?如果我限制$test在比较某些变量的值和其他变量的值时可以采用的字符串类型,那么有人可以看到有什么方法可以利用该字符串吗?

编辑

我尝试在服务器上运行以下脚本,但没有任何反应:

<?PHP
  $version = "exec('mkdir test') + 4";
  $teststr = '$version > 3;';
  $result = eval('return ' . $teststr);
  var_dump($result);
?>

我得到的只是bool(false).没有创建新目录.如果我之前有一行实际调用exec(‘mkdir test’)的行,则实际上会创建目录.它似乎工作正常,因为它只是将转换为数字的字符串与另一个数字进行比较,发现结果为假.

解决方法:

如果您这样做.只接受整数.

如果必须接受字符串,则不要.

如果您仍然认为必须这样做.别!

最后,如果仍然如此,则认为您需要字符串.只是不要!

大佬总结

以上是大佬教程为你收集整理的如何在php中安全使用eval?全部内容,希望文章能够帮你解决如何在php中安全使用eval?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: