gpt4 book ai didi

java - 病毒图像的风险

转载 作者:行者123 更新时间:2023-12-02 12:53:02 27 4
gpt4 key购买 nike

我可能问了一个愚蠢的问题,但我想确定一下,因为我的应用程序即将完成,我不想将来遇到病毒问题

我有一个用 angular2 编写的应用程序和一个用 java 编写的后端。人们可以更改他们的个人资料图片。

在我的前端,我将图片编码为 base64 并将其与帖子一起发送到我的其余 api。

  • 服务器检查base64的大小,如果达到一定大小则拒绝它(但我在tomcat中默认也有2MB的maxPostSize)
  • 然后使用库 net.iharder 解码 Base64,并将其转换为字节数组 http://iharder.sourceforge.net/current/java/base64/

  • 完成后,我通过使用

    创建 BufferedImage 来检查文件是否是图片(并调整其大小)
    ImageIO.read(ByteArrayInputStream)

    如果它与图像不对应,则返回 null 所以我也没有看到这里的风险。

  • 完成后,我会将图片存储在我的服务器中。

任何查阅带有图片的个人资料的个人资料都会收到一张 Base64 编码的图像(与上传的图像相对应),并且将以基本的形式显示

<img src="myBase64"/>

仅允许 JPG 和 PNG

我的问题是:如果有人发送包含病毒的文件,我的服务器或最终用户是否会面临任何风险?或者我使用 ImageIO 阅读器安全吗?

提前致谢

最佳答案

如果您存储发送给您的任何内容并原封不动地发回,那么任何事情都可能发生。仅仅因为 ImageIO 可以读取图像,并不意味着其中没有任何妥协。

但是,如果您调整图像大小并使用它,那么当您从原始图像字节创建全新图像时,几乎没有任何东西可以幸存。 JPG 和(我猜)PNG 文件可能包含不属于图像一部分的元数据,这些元数据可能是漏洞利用的载体。但是,通过从原始图像数据创建新图像,您隐式地剥离了所有这些。

关于java - 病毒图像的风险,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44531224/

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