Java 过滤上传文件名的特殊字符方法

文件上传-绕过黑名单验证(特殊符号) 1. 特殊符号绕过原理 Windows系统下,如果上传的文件名中test.php::DATA会在服务器上生成一个test.php的文件,其中内容和所上传文件内容相同,并被解析。例如:在Windows系统下新建一个文件名为1.php::DATA会在服务器上生成一个test.php的文件,其中内容和所上传文件内容相同,并被解析。 例如: 在Windows系统下新建一个文件名为 1.php::DATA会在服务器上生成一个test.php的文件,其中内容和所上传文件内容相同,并被解析。例如:在Windows系统下新 阅读详情
 public static void main(String[] args) throws UnsupportedEncodingException {
        String name= "test%dasda da&sda  s / \\ \" : | * ? < >.mp4";
       /* System.out.println(name.replaceAll("\\s*",""));

        System.out.println(FilenameUtils.getPrefix(name));*/

        Pattern pattern = Pattern.compile("[\\s\\\\/:\\*\\?\\\"<>\\|]");
        Matcher matcher = pattern.matcher(name);

        String name1 = matcher.replaceAll("");

        String name2 = name.replaceAll("[\\s\\\\/:\\*\\?\\\"<>\\|]","");

        // 使用Spring提供的工具类UriUtils      
        String name3 = UriUtils.encode(name,"UTF-8");

        System.out.println(name1);

        System.out.println("------------");

        System.out.println(name2);

        System.out.println("------------");

        System.out.println(name3);
    }

结果:

test%dasdada&sdas.mp4
------------
test%dasdada&sdas.mp4
------------
test%25dasda%20da%26sda%20%20s%20%2F%20%5C%20%22%20%3A%20%7C%20%2A%20%3F%20%3C%20%3E.mp4

推荐使用第二种

处理文件名特殊字符的万能函数: python、javascript、java 、golang 版 确保文件名符合规范,可以避免文件上传时出现问题。给出常见开发语言的函数版本。 阅读详情

相关推荐

hadoop 中实现一次将多文件上传至HDFS

需求场景分析   在某个单一操作中处理一系列文件是很常见的。例如一个日志处理的MapReduce作业可能要分析一个月的日志量。如果一个文件一个文件或者一个目录一个目录的声明那就太麻烦了,我们可以使用通配符(wild card)来匹配多个文件(这个操作也叫做globbing)。 为了实现上面的需求,需要先掌握如下的知识点   2.1 Hadoop提供了两种方法来处理文件组: public F

JimGray的博客 4794

java中剔除文件名中的非法字符

为什么80%的码农都做不了架构师?>>> ...

weixin_33690367的博客 854

关于附件上传文件名包含特殊字符的问题解决办法

关于附件上传文件名包含特殊字符的问题解决办法

java 文件名过滤特殊字符

java 文件名过滤特殊字符 /** * 过滤掉特殊字符 * * @param fileName * @return */ public static String filterSpecialChar(String fileName) { //删除所有的空格 fileName = Rege...

hw1287789687的专栏 3997

用Python模拟随机游走:从一维到三维,直观理解马尔可夫链的常返性

本文通过Python模拟一维到三维的随机游走,直观展示马尔可夫链的常返性特性。使用NumPy和Matplotlib构建模拟器,揭示不同维度下随机游走的返回概率差异,帮助读者理解为什么一维和二维游走具有常返性,而三维游走可能永远迷失。文章包含完整的代码示例和可视化技巧,适合概率论和Python编程爱好者学习实践。

weixin_28694295的博客 400

GAN实战:用Python和TensorFlow打造你的第一个生成对抗网络(附完整代码)

本文是一份详细的GAN实战指南,指导读者使用Python和TensorFlow框架从零开始构建并训练一个生成对抗网络。文章涵盖了环境搭建、MNIST数据预处理、生成器与判别器模型构建、对抗性损失函数定义、训练循环编写以及关键的调试技巧,旨在帮助开发者通过动手实践深入理解GAN的核心原理与实现过程。

php55的博客 480

java,过滤去掉文件名非法字符

为了合理性,过滤文件名非法字符是必须的,果断地要干掉..... 有时候数据库读出来的名字无法再本地创建文件,需要去掉非法字符。 windows现在已知的文件名非法字符有 \ / : * ? " &lt; &gt; | private static Pattern FilePattern = Pattern.compile("[\\\\/:*?\"&lt;&gt;|]");...

妖君你好的博客 4996

PADS Layout差分对布线实战:从规则设置到高速信号优化

本文详细讲解了在PADS Layout中进行差分对布线的完整实战流程。从在Layout中定义差分对网络,到进入Router配置线宽、间距等关键规则,再到布线实战技巧与高速信号完整性优化,系统阐述了如何确保差分信号(如USB、HDMI)的稳定传输,是高速PCB设计的核心技能。

weixin_29274969的博客 522

java中replaceAll用正则表达式对字符串的特殊字符进行过滤

在java的上传文件的时候,有时候需要对上传文件名称中含有的特殊字符,特别是在URL的关键字字符进行过滤,不然即使这个文件保存到了数据库,在下载这个文件时,由于通过url发送的url请求参数中的文件名带有特殊字符,而没法得到正确的中文文件名,以至在数据库中取不到不到正确的文件而下载失败,因此上传的时候对文件名做如下处理:   // 获得文件: MultipartFile mul...

cooldream888的专栏 1599

MOS管关断时尖峰电压的5种实用抑制方案(附实测数据对比)

本文针对MOS管关断时产生的尖峰电压问题,提供了五种经过实验室实测验证的实用抑制方案。文章从尖峰电压的成因分析入手,详细阐述了优化PCB布局、设计RC缓冲电路、选用TVS二极管钳位、调节驱动电路以及使用磁珠吸收高频振荡等方法的原理、实施步骤与实测数据对比,为硬件工程师解决开关电源和电机驱动中的过压应力与EMI问题提供了系统性的实战指南。

1242

新手避坑指南:用镭神C32和KVH 1750 IMU做标定,为什么直接上lidar_align会失败?

本文详细解析了使用镭神C32激光雷达和KVH 1750 IMU进行标定时常见的失败原因及解决方案。从IMU的微分传感器特性到Lidar-IMU标定的数学本质,再到可行的标定方案和实操注意事项,帮助新手避开认知陷阱,掌握正确的标定方法。

weixin_30162121的博客 327

java 上传文件注意事项

java 上传文件注意事项 1、文件名有特殊字符的情况,所以最好是文件名前台url编码,后台再url解码,这点在下载的时候也一样 2、文件大小一定要设置,spring boot 有默认。 3、文件名校验: 3.1、文件后缀校验 3.2、content-type校验 3.3、通过文件流,校验文件头,真实校验 其中,单纯的文件后缀和content-type校验,容易被绕过,只有文件流才能真实的判断出这...

zhangsir的博客 8515

傅里叶变换实战:用Python手把手教你分析音频频谱(附完整代码)

本文详细介绍了如何使用Python实现傅里叶变换进行音频频谱分析,涵盖音频加载、预处理、FFT应用、频谱可视化及特征提取等关键步骤。通过实战案例和完整代码,帮助开发者掌握数字信号处理技术,特别适合音频分析和音乐信息检索领域的应用。

weixin_29090677的博客 150

深入探索文件上传基础及过滤方式:Web 安全的关键防线

在 Web 应用程序的安全领域中,文件上传功能是一把双刃剑。它为用户提供了极大的便利,比如用户可以上传头像、文档等各类文件,但同时也给 Web 应用带来了诸多安全风险。恶意用户可能利用文件上传漏洞,上传恶意脚本文件,进而获取服务器权限,导致敏感信息泄露、网站被篡改等严重后果。因此,深入了解文件上传基础及过滤方式至关重要。

m0_57836225的博客 1213

西门子1500T系列凸轮同步(CAMIN指令用法)

添加凸轮工艺对象(TO_CAM),也就是凸轮表。开始编程,先写2个轴的使能、回原点与主轴的定位。监控主轴与从轴的位置、速度关系是否满足实验要求。1.添加工艺对象(1个定位轴,1个同步轴)调用CAMIN指令 ,凸轮耦合。主轴为旋转轴且为模数轴。3.调用插补凸轮盘指令。4.仿真、监控、调试。

gyxgyx789的博客 1万+

论文学习:Towards Automated Infographic Design:Deep Learning-based Auto-generation of Extensible Timeline

title: “Towards Automated Infographic Design:Deep Learning-based Auto-generation of Extensible Timeline” tags: [“论文评述”, “报告”] date: 2019-08-22 author: 叶慧 mathjax: true 论文:Towards Automated Infograph...

xiaoyehahaha的博客 731

java 过滤非法字符_java,过滤去掉文件名非法字符

为了合理性,过滤文件名非法字符是必须的,果断地要干掉.....有时候数据库读出来的名字无法再本地创建文件,需要去掉非法字符。windows现在已知的文件名非法字符有 \ / : * ? " < > |private static Pattern FilePattern = Pattern.compile("[\\\\/:*?\"<>|]");public static St...

weixin_35953155的博客 1030

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

【java】[文件上传jar包]commons-fileUpload组件解决文件上传(文件名)乱码问题

【java】[文件上传jar包]commons-fileUpload组件解决文件上传(文件名)乱码问题 response.setContentType("text/html; charset=UTF-8"); Boolean isMultipart = Servl...

baihuomeng2210的博客 246

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

java file操作 过滤文件名 过滤文件类型

【代码】java file操作 过滤文件名 过滤文件类型。

道友 945

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

文件上传漏洞的绕过原理与实践

这里写目录标题文件上传漏洞绕过实例场景一:对后缀名过滤场景二: 文件上传漏洞绕过实例 场景一:对后缀名过滤 绕过方法:用burpsuite抓包,修改后缀名,再转发此包 具体步骤 首先创建一个一句话木马文件,302.php 然后创建上传木马文件,但是被识别到后缀名不对 打开burpsuite,准备对此网页抓包 将302.txt后缀名改为302.jpg,然后在上传 查看burpsuite此时抓的包,然后将302.jpg改成302.php,再点击发送 之后看到上传成功 场景

buffedon的博客 3050

iBATIS update 特殊字符处理

在近期项目中发现有部分用户投诉文件名中带有  单引号、反斜杠及双引号(‘ 、 “)的文件无法上传或者文件名中少了反斜杠或双引号,经查实后发现后台执行SQL异常: org.springframework.jdbc.BadSqlGrammarException: SqlMapClient operation; bad SQL grammar []; nested exception is com

flying_pig1989的博客 2048

Java文件上传安全实战:如何用过滤器彻底堵死路径遍历漏洞(附完整代码)

本文深入剖析了Java文件上传功能中常见的路径遍历漏洞,揭示了其严重危害与常见防御误区。通过提供一个完整的Servlet过滤器实现方案,详细讲解了如何从全局层面彻底堵死该漏洞,包括核心代码、配置方法及高级防御策略,并强调了深度防御与持续监控的重要性。

weixin_28455801的博客 434

[文件上传工具类] MultipartFile 统一校验

[文件上传工具类] MultipartFile 统一校验。 功能包含: -> 1. 多文件上传校验 -> 2. 文件名字校验(特殊符号) -> 3. 文件后缀校验

pingzhuyan的博客 5839

Java minio上传/下载/删除文件方法

1. maven依赖: <dependency> <groupId>io.minio</groupId> <artifactId>minio</artifactId> <version>6.0.13</version> </dependency> 2. yml文件配置: minio: minio_url: http://127.0.0.1:9000 minio_name: mi

微笑乀 5839

java中的文件名过滤器FilenameFilter,简单实现方式:匿名内部类

我所选的目录为:   /* * 文件过滤器:多指定特点的文件进行过滤 * 步骤: * 1.把目标文件夹封装为File对象 * 2.调用list方法获取名字并存在String数组当中 * 3.将过滤器作为参数传给List方法 * 4.可以采用匿名内部类的方式直接定义过滤器,定义原则为覆盖其中的accept方法,accep中的参数 * 为(File 指定文件,String name...

逆水行舟,不进则退 3113

java 是用正则表达式对文件名非法字符处理

java 是用正则表达式对文件名非法字符处理 文件名在操作系统中不允许出现 / \ ” : | * ? &lt; &gt; 故将其以空替代 Pattern pattern = Pattern.compile("[\\s\\\\/:\\*\\?\\\"&lt;&gt;\\|]"); Matcher matcher = pattern.matcher(fileName); fileName=...

CNSYEAR BLOG 4656
上一篇: macOS 安装homebrew报错LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 54解决方法
下一篇: vim选中字符复制/剪切/粘贴
shadow_zed
博客等级 码龄10年 6289粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值