<?php
$str="hallo world"; //比如这个是元算结果
$code= "print('\n$str\n');";//这个是保存在数据库内的php代码
echo "***";
echo($code);//打印组合后的命令,str字符串被替代了,形成一个完整的php命令,但并是不会执行
echo "###";
eval($code);//执行了这条命令
?>;
$str="hallo world"; //比如这个是元算结果
$code= "print('\n$str\n');";//这个是保存在数据库内的php代码
echo "***";
echo($code);//打印组合后的命令,str字符串被替代了,形成一个完整的php命令,但并是不会执行
echo "###";
eval($code);//执行了这条命令
?>;
eval这个函数很可能有漏洞,因为可以执行很多命令:如:net user 等,会导致注入漏洞等,黑客很有可能拿到服务器的密码,然后反解密,很是危险性,必须防范,在我们的开发中如发feed等可以通过先拼接好字符串,然后构造函数发送feed!
作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/1631/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!
最后编辑: jackxiang 编辑于2009-2-13 18:36
评论列表