Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 检查图像内容是否为有效的图像代码_Php_Html_Laravel_Laravel 5.5 - Fatal编程技术网

Php 检查图像内容是否为有效的图像代码

Php 检查图像内容是否为有效的图像代码,php,html,laravel,laravel-5.5,Php,Html,Laravel,Laravel 5.5,有没有办法检查里面的图像代码是否有效,因为 一些黑客(黑客)可以通过一些应用程序更改扩展名并使用图像信息来欺骗网站,使其认为图像类型是图像,而不是图像 那么,有没有办法检查内容是否是图像代码 还是要检查这种类型的攻击?多个图像 $validatedData = $request->validate([ 'images' => 'required', 'images.*' => 'image|mimes:jpeg,png,jpg,gif,svg|max:2048'

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

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

那么,有没有办法检查内容是否是图像代码

还是要检查这种类型的攻击?

多个图像

$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'
]);

在我看来,最好的方法是将文件上传到像AmazonS3这样的云存储中(Laravel内置了对此的支持)。像S3这样的云存储永远不会执行服务器端代码;这是你能得到的最安全的。应用程序大小不需要云服务器,但这是个好主意,目前我正在使用“干预图像”处理图像,但我想知道是否有人知道另一个waySize真的与此无关。S3是一个云服务,但不涉及管理服务器。我有一个将图像存储到S3的应用程序,每月花费0.03美元,因为它的使用率不高。第二个例子应该是
“image”=>“required”| mimes:jpeg、png、jpg、gif、svg | max:2048”
;数组不能有2个相同的键(
'image'
),因此第一个规则
('required')
将被丢弃。这不会有帮助,因为可以更改MIME,包括图像类型。目前唯一的解决方案是云服务器或处理像“干预映像”这样的映像