php eval解开...求会的求ps大神帮忙p图 帮忙

php @eval是干嘛的?怎么用的?求大神详解啊_百度知道
php @eval是干嘛的?怎么用的?求大神详解啊
提问者采纳
;echo &quot把字符串 东西变成代码执行; &#39:$str='eval($str).比如;hello world&
提问者评价
来自团队:
其他类似问题
为您推荐:
eval的相关知识
其他1条回答
@是忽略可能出现的错误。eval()查查嘛,js里也有
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁定义和用法
eval() 函数把字符串按照 PHP 代码来计算。
该字符串必须是合法的 PHP 代码,且必须以分号结尾。
如果没有在代码字符串中调用 return 语句,则返回 NULL。如果代码中存在解析错误,则 eval() 函数返回 false。
eval(phpcode)
必需。规定要计算的 PHP 代码。
提示和注释
注释:返回语句会立即终止对字符串的计算。
注释:该函数对于在数据库文本字段中供日后计算而进行的代码存储很有用。
$string = "beautiful";
$time = "winter";
$str = 'This is a $string $time morning!';
echo $str. "&br /&";
eval("\$str = \"$str\";");
This is a $string $time morning!
This is a beautiful winter morning!
eval() 函数在CodeIgniter框架里也有用到。在 /system/database/DB.php 文件中,根据系统的配置动态的定义了一个类 CI_DB,具体代码片段如下:
if ( ! isset($active_record) OR $active_record == TRUE)
require_once(BASEPATH.'database/DB_active_rec.php');
if ( ! class_exists('CI_DB'))
eval('class CI_DB extends CI_DB_active_record { }');
if ( ! class_exists('CI_DB'))
eval('class CI_DB extends CI_DB_driver { }');
require_once(BASEPATH.'database/drivers/'.$params['dbdriver'].'/'.$params['dbdriver'].'_driver.php');
// Instantiate the DB adapter
$driver = 'CI_DB_'.$params['dbdriver'].'_driver';
$DB = new $driver($params);
阅读(...) 评论()php中eval函数的危害与正确禁用方法
投稿:shichen2014
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了php中eval函数的危害与正确禁用方法,需要的朋友可以参考下
php的eval函数并不是系统组件函数,因此我们在php.ini中使用disable_functions是无法禁止它的。
但是eval()对于php安全来说具有很大的杀伤力,因此一般不用的情况下为了防止类似如下的一句话木马入侵,需要禁止!
&?php eval($_POST[cmd]);?&
eval()使用范例:
$string = '杯子';
$name = '咖啡';
$str = '这个 $string 中装有 $name.&br&';
eval( "$str = "$str";" );
本例的传回值为:
这个 $string 中装有 $name.
这个 杯子 中装有 咖啡.
或更高级点的是:
$str="hello world"; //比如这个是元算结果
$code= "print('n$strn');";//这个是保存在数据库内的php代码
echo($code);//打印组合后的命令,str字符串被替代了,形成一个完整的php命令,但并是不会执行
eval($code);//执行了这条命令
对于上面的咖啡的例子,在eval里面,首先字符串被替换了,其次替换完后形成一个完整的赋值命令被执行了.
这类小马砸门的情况是需要禁止掉的!
然而网上很多说使用disable_functions禁止掉eval的方法都是错误的!
其实eval()是无法用php.ini中的disable_functions禁止掉的 :
because eval() is a language construct and not a function
eval是zend的,因此不是PHP_FUNCTION 函数;
那么php怎么禁止eval呢?
如果想禁掉eval可以用php的扩展 Suhosin:
安装Suhosin后在php.ini中load进来Suhosin.so,再加上suhosin.executor.disable_eval = on即可!
总结,php的eval函数在php中是无法禁用的,因此我们也只有使用插件了!
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具}

我要回帖

更多关于 求大神帮忙p图 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信