安全性:如何验证图像文件上传?

2023-11-25

我需要接受用户上传的图像文件。

如何检查并 100% 确定我没有收到恶意文件或其他内容?

检查 mime 类型?重新画图?防病毒?


重新绘制图像,读取它GD's imagecreatefromXXX()并将其保存回来imageXXX()

通过这种方式,您还可以将其扩展到更方便的大小并控制带宽消耗。

为了节省计算能力,请拒绝上传大于特定限制的文件。

5megs 或 10megs 应该没问题,但有限制。

保持 GD 更新,并保持警惕(显然是 7 年前)它曾经用于显示缓冲区溢出在处理PNG 图像

或者,您也可以使用以下命令在后台预处理上传的图像图像魔术师's convert等等。

最后的警告说明:在 Windows 上 convert也是一个用于格式化硬盘,因此,如果您对此进行部署,请付出一些努力来消除歧义。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

安全性:如何验证图像文件上传? 的相关文章

随机推荐

  • 如何在 laravel dompdf 中为每页添加页码?

    我从这里得到 https github com barryvdh laravel dompdf 我的控制器是这样的 public function listdata pdf PDF loadView print tests test pdf
  • 如何正确关闭数据源连接?

    我有这个类 但我不确定如何正确关闭连接 因为即使我只有 3 个用户登录但有多个 sql 查询 我仍然遇到此错误 gt com mysql jdbc exceptions jdbc4 MySQLNonTransientConnectionEx
  • 更改 CMAKE_CXX_FLAGS_DEBUG 和 CMake 中朋友的默认值

    我想更改默认值CMAKE CXX FLAGS RELEASE or CMAKE CXX FLAGS DEBUG在 CMake 中 基本上 我有一些项目默认值与 CMake 的默认值略有不同 例如 对于发布 我不应该问自己 哦 当使用 add
  • 迭代 Objective-C 对象的子对象时,镜像在 Swift 中不起作用

    我有一个与在 Swift 中使用 Mirror 相关的非常奇怪的问题 我正在迭代名为 Test 的类中的所有属性 let test Test let mirror Mirror reflecting test for i in mirror
  • 如何使枚举类与“位或”功能一起使用?

    我通常使用enum与 位或 或 在一起可以让一个对象拥有一些选项 如何使枚举类与 位或 功能一起使用 您需要重载枚举类的运算符 并通过转换为基础类型来实现它们 enum class foo unsigned bar 1 baz 2 foo
  • Symfony 安全性返回 401 响应而不是重定向

    我正在编写一个带有ajax身份验证的ajax应用程序 现在我开始使用silex中的symfony安全组件来处理身份验证 授权 使用简单的配置进行简单的测试 我进入防火墙的受保护区域 得到的响应是重定向到 login页面 但我在应用程序中需要
  • 阻止 UIPopover 自动关闭

    我想知道是否有办法阻止 iPad 弹出框在您触摸弹出框外的屏幕时自动关闭 如果没有 是否有某种类似于 popoverDidDismiss 的方法 我可以调用它来告诉弹出窗口何时被关闭 是的你可以 这是苹果文档中的内容 当由于用户在弹出窗口视
  • 在球体上翻转 Three.js 中的法线

    我一直在四处寻找 但还没有找到任何真正好的答案来回答我的问题 问题是我有这个球体 只是一个基本球体 我想翻转法线 所以 球体获得某种 空心 雕刻效果 然后将我的纹理应用到球体的 内部 关于如何翻转法线有什么想法吗 另外 如果不可能在 Thr
  • Pandas,在字符串中打印变量

    我有一个数据框 新 看起来像这样 num name1 name2 11 A AB 14 Y YX 25 L LS 39 Z ZT 我只想提取打印语句中的数值 这样我就有一个如下所示的输出 The value is 11 The value
  • Python:xml ElementTree(或 lxml)中的命名空间

    我想检索旧版 xml 文件 操作并保存它 这是我的代码 from xml etree import cElementTree as ET NS http www somedomain com XI Traffic 10 def fix xm
  • 如何在 gdb 中打印 Objective-C 类方法的结果?

    当使用 gdb 通过调试控制台 在 Xcode 4 中调试 iPad 程序时 我试图打印出运行类方法的结果 gdb po MyClass foo bar gdb 输出以下内容 当前上下文中没有符号 MyClass 有没有办法打印结果 NSS
  • C# 编译/构建是一个增量过程吗?

    我们的解决方案包含大量 C 项目 它们之间存在复杂的依赖关系 例如 项目A B C A依赖于B B依赖于C 如果我更改项目C中的一个文件 然后重建解决方案 项目A B C将一起重建 在C 中 构建包含两个过程 编译和链接 如果我更改项目C中
  • 如何与 NSPersistentCloudKitContainer 设置有序关系?

    当我检查时Used with CloudKit 错误Folder children must not be ordered出现了 关于有序关系有什么想法吗 使用 Xcode 11 测试版 3 这是Folder Entity 适用于 iOS
  • 在 Fortran 中使用“X != 0”时出现语法错误

    我的 Fortran 程序有一个问题 它除了计算素数分解 或应该做 之外什么也不做 这就是错误 C MinGW Fortran gt gfortran aufg3 f90 aufg3 f90 15 15 if prim i 0 and mo
  • 计算函数 sin()

    为了我的学习 我必须编写一个算法来计算sin 有了这个功能 然而 在我的算法中 我必须将 X 的值保持在 0 到 Pi 2 之间 所以 我写了我的算法 但所有结果都是错误的 这是我的代码 double sinX double x doubl
  • 在启动时获取azure应用程序服务插槽名称?

    当 asp net core 进程启动时 如何获取我的应用程序服务的插槽 生产或暂存 的名称 HTTP HOST 环境变量似乎没有在启动时设置 并且我没有要检查的 http 请求 如果我们想获取主机名 可以使用环境变量WEBSITE HOS
  • 在一个项目中编译 Silverlight 和 WPF 的最佳实践是什么?

    我刚刚完成了一个 Silverlight 项目 是时候进行一些清理了 我想将我的核心文件放入一个单独的项目中 我将从我的主 Silverlight 应用程序中引用该项目 其中一些类与 WPF 兼容 我非常希望能够将 Silverlight
  • C 获取文件的最后修改日期

    我想获取 C 语言中文件的最后修改日期 我发现的几乎所有来源都使用以下代码片段中的内容 char get last modified char file struct tm clock struct stat attr stat file
  • os.system()在哪个linux shell下执行命令?

    我在用 bin tcsh作为我的默认外壳 然而 tcsh 风格的命令os system setenv VAR val 对我不起作用 但os system export VAR val works 所以我的问题是我怎样才能知道os syste
  • 安全性:如何验证图像文件上传?

    我需要接受用户上传的图像文件 如何检查并 100 确定我没有收到恶意文件或其他内容 检查 mime 类型 重新画图 防病毒 重新绘制图像 读取它GD s imagecreatefromXXX 并将其保存回来imageXXX 通过这种方式 您