2013-04-16 1 views
0

나는 "><script>alert(1);</script> 같은 쿼리에 대한 ESAPI의를 정규화 기능을 사용하여 시도이ESAPI.encoder().를 정규화 (쿼리)가 제대로 작동하지

<input class="textBox" type="text" value="<%=ESAPI.encoder().canonicalize(query) %>" autocomplete="off" /> 

같은 입력 태그 그러나이 일을 나던하고 난 얻을 내 브라우저에서 경고. 내가 제대로하고 있니?

답변

1

컨텍스트에 잘못된 인코딩을 사용하고 있습니다. 정규 속성 컨텍스트에 있으므로 encodeForHTMLAttribute을 사용해야합니다.

, BTW 자바에 대한 상황에 맞는 autoescaping https://code.google.com/p/hapax2/이있는 템플릿 언어는 수동으로 당신이 수동으로 올바른 인코딩을 선택

  • 에 어떤 컨텍스트를 결정 그래서 당신은

    1. 에없는이 컨텍스트
    2. 이 경우에 입이다, 수동으로 탈출하는 코드를 작성하고 오류가

    어느 읽을 수있는 템플릿 어렵게 -prone과 훨씬 더 어려운 것을 제외하고 수동으로 SQL을 이스케이프 비교.

  • +0

    ESAPI.encoder(). encodeForHTMLAttribute (query)를 사용해 보았지만 여전히 브라우저에서 경고를 받고 있습니다. –

    +0

    @Coder_sLaY 브라우저의보기 소스에서 출력물을 볼 수 있습니까? – Esailija

    +0

    캐시 문제가있었습니다. 그 일. 엄청 고마워. Btw 당신이 날 hapax2를 사용하여 제안 해 주시겠습니까? –

    관련 문제