web上存漏洞及原理分析、防范方法(文件名检测漏洞)

  次阅读 作者:智能小宝 来源:互联网 2016-03-02 15:28 我要评论(0)

我们通过前篇:<web上存漏洞及原理分析、防范方法(安全文件上存方法)>,已经知道后端获取服务器变量,很多来自客户端传入的。跟普通的get,post没有什么不同。下面我们看看,常见出现漏洞代码。1、检测文件类型,并且用用户上存文件名保存

复制代码 代码如下:

if(isset($_FILES['img']))

{

$file = save_file($_FILES['img']);

if($file===false) exit('上存失败!');

echo "上存成功!",$file;

}

function check_file($img)

{

///读取文件

if($img['error']>0) return false;

$tmpfile = $img['tmp_name'];

$filename = $img['name'];

///读取文件扩展名

$len=strrpos($filename,".");

if($len===false) return false;

//得到扩展名

$ext = strtolower(substr($filename,$len+1));

if(!in_array($ext,array('jpg','jpeg','png'))) return false;

return true;

}

function save_file($img)

{

if(!check_file($img)) return false;

//格式检测ok,准备移动数据

$filename = $img['name'];

$newfile = "upload/" .$filename;

if(!move_uploaded_file($img["tmp_name"],$newfile)) return false;

return $newfile;

}

?>

以 上代码,对输入类型也做了判断,看了没有问题。但是问题,确恰恰出现在对获取的用户名变量检测上面。直接获取传入用户名,然后存为文件。有朋友会说:这些文件名都是我电脑里面存在的,文件名格式都受限于操作系统对文件名定义。但是,需要注意是,对于$_FILES里面获取变量,是直接来自http request请求。它跟普通获取其它get,post变量一样。因此,别有用心的人,往往会自己模拟浏览器,给服务器发送一个特殊文件名。然后,让存文件时候,能够正常保存为自己格式。

前些年,”

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...