私は短期間の契約ギグを行っており、レガシーコードのいくつかの脆弱性にパッチを当てようとしています。私が取り組んでいるアプリケーションは、Classic ASP(VBScript)と.Net 2.0(C#)の組み合わせです。彼らが購入したツールの1つは、Fortify360です。
アプリケーションの現在のクラシック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は、これをヘッダー操作に対して脆弱であるとフラグを立てます。Fortifyはどのように、または正確に何を探していますか?
Fortifyが特定のキーワードを探していると思う理由は、.Net側では、Microsoft AntiXssアセンブリを含めて、GetSafeHtmlFragment
andUrlEncode
やFortifyなどの関数を呼び出すことができるからです。
何かアドバイス?