首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何保护来自LFI的上传php

如何保护来自LFI的上传php
EN

Stack Overflow用户
提问于 2013-07-05 09:31:54
回答 1查看 451关注 0票数 0
代码语言:javascript
复制
<?php

    if($_POST){

        $imagentipo=$_FILES['imagen']['type'];
        $check=array("image/gif","image/jpeg","image/png");

        if(in_array($imagentipo,$check)){
            $imagen=$_FILES['imagen']['name'];
            $temp=$_FILES['imagen']['tmp_name'];
            move_uploaded_file($temp,$imagen);
        }
    }
?>
<html>
<body>
    <form action=test.php method=post enctype=multipart/form-data>
        <img src="<?php echo $imagen ?>" width=50 height=50><br>
        <input type=file name=imagen accept="image/*"><br>
        <input type=submit name=lol>
    </form>
</body>
</html>

此代码仅允许上载.jpg .gif .png文件;但是,可以通过篡改数据绕过此操作。有什么方法可以防止这种情况发生吗?

EN

回答 1

Stack Overflow用户

发布于 2013-07-05 09:49:27

将上传的文件移到web根目录之外,并使用图像操作库中的函数来检查上传的文件是否确实是图像。像Imagick一样:

代码语言:javascript
复制
try{
  $image = new Imagick($filePath);
}catch(Exception $e){
  // fail
}

如果你没有Imagick:

代码语言:javascript
复制
if(getimagesize($filePath) === false){
  // fail...
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17479938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档