Java路径遍历漏洞修复心得

一、路径遍历

路径遍历是指应用程序接收了未经合理校验的用户参数用于进行与文件读取查看相关操作,而该参数包含了特殊的字符(例如“..”和“/”),使用了这类特殊字符可以摆脱受保护的限制,越权访问一些受保护的文件、目录或者覆盖敏感数据。本文以JAVA 语言源代码为例,分析路径遍历缺陷及该缺陷产生的原因及修复方法。

二、缺陷代码

172行因为localFile因为接收参数后未对参数做合理校验,可能会收到../file.text,假定文件路径有效,则可能导致读取了 uploads 父目录下的 file.text 文件。

三、代码修复

我使用了2种方法可以来解决路径遍历问题,一是全局过滤,二是单个字符串过滤

全局过滤代码如下:

private String fileNameValidate(String str) {
		
		String fileNameListStr ="../|./|/..";  //这里为请求体中不能携带的关键字

		if(null!=fileNameListStr && !"".equals(fileNameListStr))
		{
			str = str.toLowerCase();// 统一转为小写

			log.info("sqlFilter===========================>>路径遍历过滤规则:
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值