Я работаю по краткосрочному контракту, пытаюсь исправить некоторые уязвимости в их устаревшем коде. Приложение, над которым я работаю, представляет собой комбинацию 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 помечает это как уязвимое для манипуляции заголовком. Как или что именно ищет Fortify?
Причина, по которой я подозреваю, что Fortify ищет конкретные ключевые слова, заключается в том, что на стороне .Net я могу включить функции сборки и вызова Microsoft AntiXss, такие как GetSafeHtmlFragment
и UrlEncode
, и Fortify рад.
Любой совет?