图片传输和图片防遍历技术方案
需求描述: 1.如果用一个接口列表,可能报文太长了,实现URL是短期有效且防遍历的 2.接口文件流,拆两个接口,一个接口返回文件列表,另一个根据文件ID返回文件流 3.如果都是图片,base64通过接口来传输图片也可以。 4.发送端和接收端可以对文件做MD5加密,这样可以验证文件在传输过程中是否被篡改。
1.对用户提交过来的文件名称硬编码或者统一编码,对文件类型进行白名单控制,对包含恶意字符或者空字符的参数进行拒绝。
代码语言:javascript复制package com.example.core.mydemo.java;
import java.util.regex.Pattern;
public class FileNameTest {
private static Pattern FilePattern = Pattern.compile("[\\/:*?"<>|]");
public static String filenameFilter(String str){
return str==null?null:FilePattern.matcher(str).replaceAll("");
}
public static void main(String[] args) {
System.out.println("str1=" filenameFilter("aaa.txt"));
System.out.println("str2=" filenameFilter("bb\a?*.txt"));
System.out.println("str3=" filenameFilter("cc/:a.txt"));
System.out.println("str4=" filenameFilter("dd"a.txt"));
System.out.println("str5=" filenameFilter("[ee<>|a].txt"));
}
}
output: str1=aaa.txt str2=bba.txt str3=cca.txt str4=dda.txt str5=[eea].txt