图片传输和图片防遍历技术方案

图片传输和图片防遍历技术方案

需求描述:
1.如果用一个接口列表,可能报文太长了,实现URL是短期有效且防遍历的
2.接口文件流,拆两个接口,一个接口返回文件列表,另一个根据文件ID返回文件流
3.如果都是图片,base64通过接口来传输图片也可以。
4.发送端和接收端可以对文件做MD5加密,这样可以验证文件在传输过程中是否被篡改。

1.对用户提交过来的文件名称硬编码或者统一编码,对文件类型进行白名单控制,对包含恶意字符或者空字符的参数进行拒绝。

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

posted on 2024-02-05 18:57  oktokeep  阅读(23)  评论(0编辑  收藏  举报