ESAPI для предотвращения XSS не работает

Я работаю над устранением проблем межсайтового скриптинга в нашем коде в основном в JSPS.

Ниже приведен оригинальный код

 //scriplet code
    <% String userId = request.getParameter("sid"); 
    ...%>

и в том же JSP у них есть

     <input type = hidden name = "userID" value = "<%= userId %>" />

Я внес изменения, чтобы включить esapi-2.1.0.jar в lib и ESAPI.properties, validation.properties в classpath. Затем внесены следующие изменения в код сценария, чтобы исправить вышеуказанный код.

      //scriplet code
    <% String userId = ESAPI.encoder().encodeForHTML(request.getParameter("sid")); 
    ...%>

Я думал, что это решит проблему, но когда я сканирую свой код с помощью Fortify, эти строки снова подсвечиваются как имеющие проблему XSS. Пожалуйста, помогите, если вы, ребята, знаете, как с этим обращаться. Благодарю.

------- ОБНОВИТЬ

Большое спасибо @avgvstvs. Это очень проницательно. Следующие рекомендации. Не уверен, что я что-то упустил. Код -

          String              userSID=ESAPI.encoder().encodeForHTMLAttribute(request.getHeader("janus_sid")); session.setAttribute("username",userSID);<input type=hidden name="USERNAME" value="<%= userSID %>"

И для другой отладки varibale ниже использование

       String debugFlag =  ESAPI.encoder().encodeForJavaScript(request.getParameter("debug"));var debugFlag = "<%= debugFlag%>";if(debugFlag == "y"){       
        document.title=   title + " (" + host + ")";
        defaultAppTitle = title + " (" + host +  ")";           
    }                                                           

Последнее сканирование Fortify по-прежнему перечисляет их как уязвимости :-(

Ответы на вопрос(2)

Ваш ответ на вопрос