PHP验证base64编码图像(PHP Validate base64 encoded images

2019-09-22 02:12发布

我需要找到一个方法来验证它的形象是在的base64编码PHP。

通过验证我在想XSS和类似的其他安全的事情。

该流程是:

用户有一些参数,其中,它们的图像的使用Base64编码字符串一个OG越来越张贴到我的网站。 当我接收称为IMG1与base64编码图像字符串作为值的参数FX。

那么我想,以确保这个base64编码字符串只包含图像的所行没有任何标签和任何其他的东西黑客会尝试使用。

没有人知道任何PHP函数或插件,能帮助我吗?

Answer 1:

您可以尝试使用该字符串创建图像imagecreatefromstring功能。

然后,您可以测试图像尺寸/类型。

如果你想多走一步,你可以创建一个新的图像,然后尝试将用户图像复制到它,并以此作为最终图像。 由于最终图像最初是由您创建有一个机会非常渺茫任何黑客可以得到通。



Answer 2:

我将只需要Base64编码字符串,并把它放在一个图像标记。 但安全是系统我建立这样很importent事情,我只需要确保类似XSS不能用base64编码的图像使用:)

然后,你这样做,因为与任何其他用户输入:你htmlspecialchars -encode把它放在你的HTML保存你的HTML的完整性之前提供的文本的用户。 Base64编码图像串也不例外。 见大逃避现实(或:你需要知道的工作,文本中的文本是什么) 。

当然,图像数据的斑点可以通过脆弱的图象解析器打开你到完全不同的攻击向量。 所以,你可能要到图像串转换的图像资源首先解码,并将其保存再次使用GD或Imagick功能,即打开和重新保存/再编码的图像。



Answer 3:

试试这个库

https://github.com/imaimai86/Intervention-Base64Image

它采用干预图像库来验证base64编码图像



Answer 4:

$str = 'your  base64 code' ;

if (base64_encode(base64_decode($str, true)) === $str && imagecreatefromstring(base64_decode($img))) {
echo 'Success! The String entered match base64_decode and is Image';
}


文章来源: PHP Validate base64 encoded images