在vb.net中使用Request.Url.AbsolutePath时如何防止xss
当checkmarx扫描这行上的项目代码时,我在checkmarx中发现了一个严重的安全问题在vb.net中使用Request.Url.AbsolutePath时如何防止xss,.net,vb.net,security,xss,secure-coding,.net,Vb.net,Security,Xss,Secure Coding,当checkmarx扫描这行上的项目代码时,我在checkmarx中发现了一个严重的安全问题 lnkGeneral.NavigateUrl = Me.Request.Url.AbsolutePath & "?ID=" & eID & "&View=" & HttpUtility.UrlEncode("General") 它突出显示了Me.Request.Url.AbsolutePath,当然我不
lnkGeneral.NavigateUrl = Me.Request.Url.AbsolutePath & "?ID=" & eID & "&View=" & HttpUtility.UrlEncode("General")
它突出显示了Me.Request.Url.AbsolutePath
,当然我不能在Me.Request.Url.AbsolutePath
上执行Html.UrlEncode
,所以想知道它的修复方法是什么
这是马克思的描述
应用程序的SetupView在CommitteeTerm.ascx.vb的第254行使用navigateurl将不受信任的数据嵌入生成的输出中。这种不受信任的数据直接嵌入到输出中,而不进行适当的清理或编码,从而使攻击者能够向输出中注入恶意代码
攻击者只需在用户输入绝对路径中提供修改后的数据即可更改返回的网页,该路径由CommitteeTerm.ascx.vb第254行的SetupView方法读取。然后,该输入通过代码直接流到输出网页,而无需消毒
这可能导致反射式跨站点脚本(XSS)攻击
是否可以改为工作?@AndrewMorton从技术上讲他们是不同的,但我可能可以在我的情况下使用它,你认为checkmarx不会在请求时唠叨吗。文件路径?@AndrewMorton有趣的是工作了,请添加它作为接受它的答案。如果你能在我之前向checkmarx确认他们没有从他们的支票中漏掉它,这可能是最好的(或者你)将此作为回答。我怀疑如果这是一个真正的修复,那么这是因为
请求.Url
来自客户端,而请求.FilePath
来自服务器。