【问题标题】:Check if image content is a valid image code检查图像内容是否是有效的图像代码
【发布时间】:2019-05-29 02:47:20
【问题描述】:

有没有办法检查里面的图片代码是否有效,因为

一些破解者(黑客)可以更改扩展名并使用某些应用程序使用图像信息来欺骗网站,使其类型是图像而不是图像

那么有什么方法可以检查内容是否是图像代码?

或者有没有办法检查这种类型的攻击?

【问题讨论】:

  • IMO,最好的方法是让文件上传到像 Amazon S3 这样的云存储(为此 Laravel 内置了支持)。像 S3 这样的云存储永远不会执行服务器端代码;它是尽可能安全的。
  • 应用程序大小不需要云服务器,但目前我正在使用“干预图像”处理图像是个好主意,但我想知道是否有人知道另一种方法
  • 大小真的与它没有任何关系。 S3 是一种云服务,但不涉及管理服务器。我有一个将图像存储到 S3 的应用程序,每月花费 0.03 美元,因为它没有得到太多使用。

标签: php html laravel laravel-5.5


【解决方案1】:

多张图片

$validatedData = $request->validate([
    'images' => 'required',
    'images.*' => 'image|mimes:jpeg,png,jpg,gif,svg|max:2048'
]);

单张图片验证

$validatedData = $request->validate([
    'image' => 'required',
    'image' => 'image|mimes:jpeg,png,jpg,gif,svg|max:2048'
]);

【讨论】:

  • 第二个例子应该是'image' => 'required|mimes:jpeg,png,jpg,gif,svg|max:2048';数组不能有 2 个相同的键 ('image'),所以第一条规则 ('required') 将被丢弃。
  • 这无济于事,因为可以更改 mime,包括图像类型。目前唯一的解决方案是云服务器或像“干预图像”这样处理图像
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-25
  • 1970-01-01
  • 1970-01-01
  • 2017-08-31
  • 1970-01-01
  • 2012-12-04
相关资源
最近更新 更多