.net - 使用 checkMarx 工具在代码扫描期间遇到 checkMarx 路径遍历问题
问题描述
执行 HttpWebRequest 时出现checkMarx路径遍历问题,
来自 checkmarx 的错误消息: 从 headers 元素获取动态数据。该元素的值随后流经代码并最终用于本地磁盘访问的文件路径中。
我在标头中传递的唯一输入是访问 API 的令牌。有没有办法克服这个问题?
下面是代码,我从 cookie 中获取令牌并将其与 httpRequest 一起传递。
Dim responseString As String = ExecuteURL("www.mysite.com\action")
Private Function ExecuteURL(ByVal url As String) As String
Dim basicRequest As HttpWebRequest = DirectCast(WebRequest.Create(url), HttpWebRequest)
basicRequest.ContentType = "application/json; charset=utf-8"
basicRequest.Method = "GET"
Dim cookie As HttpCookie = HttpContext.Current.Request.Cookies("token")
If Not cookie Is Nothing AndAlso Not String.IsNullOrEmpty(cookie.Value) Then
basicRequest.Headers.Add("Authorization", "service" + cookie.Value)
End If
Dim response As HttpWebResponse
Try
response = CType(basicRequest.GetResponse(), HttpWebResponse)
If Not response Is Nothing Then
Using streamReader As StreamReader = New StreamReader(response.GetResponseStream())
Return streamReader.ReadToEnd()
End Using
End If
Catch ex As System.Net.WebException
Using streamReader As StreamReader = New StreamReader(ex.Response.GetResponseStream())
Return streamReader.ReadToEnd()
End Using
End Try
Return String.Empty
End Function
解决方案
这也是 owasp 中提到的漏洞之一。为了更好地理解和解决问题,我建议阅读一下 - https://blog . mindsecurity.com/2018/10/how-to-prevent-path-traversal-in-net.html
推荐阅读
- operating-system - 为什么我的笔记本电脑窗口 10 64 位中缺少操作系统
- android - 如何以编程方式在android资源文件中设置项目windowBackground
- sharepoint - 在 Visual Studio 2019 中从 SharePoint 2013 到 SharePoint 2019 的代码迁移失败
- javascript - 如何在 React 中重置 contenteditable 元素?
- azure-devops - 如何将包添加到 devops 工件?(NonAuthoritativeInformation 你的包被推送了)
- vmware - 从 VMDK 文件创建虚拟磁盘映像
- shacl - 澄清 Shacl sh:qualifiedValueShape
- javascript - TypeError: Object(...) is not a function reactjs 错误
- vue.js - 使用 Jest 在 Vue 中为组件中的方法编写单元测试
- android - 删除下拉项的顶部和底部背景颜色