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

2024-10-09 11:15:07 浏览数 (2)

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

需求描述: 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

0 人点赞