我正在从事短期合同工作,试图修补他们遗留代码中的一些漏洞。我正在开发的应用程序是 Classic ASP (VBScript) 和 .Net 2.0 (C#) 的组合。他们购买的工具之一是 Fortify 360。
这是应用程序中当前的经典 ASP 页面:
<%@ Language=VBScript %>
<%
Dim var
var = Request.QueryString("var")
' do stuff
Response.Redirect "nextpage.asp?var=" & var
%>
我知道,我知道,很短而且很危险。
所以我们编写了一些(en/de)编码器和验证/验证例程:
<%@ Language=VBScript %>
<%
Dim var
var = Decode(Request.QueryString("var"))
' do stuff
if isValid(var) then
Response.Redirect "nextpage.asp?var=" & Encode(var)
else
'throw error page
end if
%>
并且 Fortify 仍然将其标记为易受 Header Manipulation 的影响。Fortify 究竟在寻找什么?
我怀疑 Fortify 正在寻找特定关键字的原因是,在 .Net 方面,我可以包含 Microsoft AntiXss 程序集并调用诸如GetSafeHtmlFragment
和之类的函数,UrlEncode
并且 Fortify 很高兴。
有什么建议吗?