【深入代码系列】手牵手一起了解代码安全
奇安信代码卫士
路径遍历
路径遍历是指应用程序接收了未经合理校验的用户参数用于进行与文件读取查看相关操作,而该参数包含了特殊的字符(例如“..”和“/”),使用了这类特殊字符可以摆脱受保护的限制,越权访问一些受保护的文件、目录或者覆盖敏感数据。本文以JAVA 语言源代码为例,分析路径遍历缺陷及该缺陷产生的原因及修复方法。
修复方式:在使用传入的参数前,用正则表达式进行特殊字符,比如, ”/\” : | * ? < >”等的过滤
如何避免路径遍历
要避免路径遍历,需要注意以下几点:
(1)程序对非受信的用户输入数据净化,对网站用户提交过来的文件名进行硬编码或者统一编码,过滤非法字符。
(2)对文件后缀进行白名单控制,对包含了恶意的符号或者空字节进行拒绝。
(3)合理配置 web 服务器的目录权限。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 左耳!
评论