java 上传图片内容校验_Java校验上传图片文件是否含有木马的两种方式

本文介绍了在Java中如何校验上传的图片文件是否含有木马的两种方法:一是通过重写图片,二是将图片流转换为十六进制字符串并过滤高危字符。这两种方法可以增强文件上传的安全性。
摘要由CSDN通过智能技术生成

这两天开发一个app遇到了上传文件的安全问题,在这里记录下来,弥补自己只有鱼的记忆的缺陷,也希望有人能够提供更好的思路去解决文件上传的安全问题.

下面这个类是文件上传的公共方法,ToolUtils判断的是文件的类型(jpg/png等),这样的做法根本不能避免上传的文件不是木马.下面引入两种方式,调用时候只需要引用一种即可.

private String executeUpload(String uploadDir,MultipartFile file) throws Exception {

// 文件后缀名

String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));

// 判断后缀名是否合法

String suffixs = suffix.substring(1, suffix.length());

boolean isImage = ToolUtils.isImage(suffixs);

if(!isImage) {

logger.error("the transfer file is not a image!");

throw new FileException("上传非法文件!");

}

// 上传文件名

String fileName = UUID.randomUUID() + suffix;

InputStream inputStream = file.getInputStream();

// 第二种,判断文件是否含有木马(读取流)

// boolean flag = FileUtil.isFile(inputStream);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值