2012-09-30 2 views
11

JSF 2.0과 함께 PrimeFaces를 사용하여 하나의 응용 프로그램을 작성하고 있습니다. 사용자가 서식있는 텍스트를 만들 수 있도록 PrimeFaces <p:editor> 구성 요소를 사용하고 있습니다. 나는 아래와 같이 <h:outputText>이 표시되면HTML 코드가있는 문자열을 JSF 페이지에 삽입하고 해석하는 구성 요소

String text = "<p>This text <i>contains</i> some <b>HTML</b> code.</p>"; 

:

<h:outputText value="#{bean.text}" /> 

그 다음은 일반 텍스트로 HTML 코드를 보여줍니다 :하지만이 구성 요소의 출력은 다음과 같이 HTML 소스입니다

<P> <I>는 < 포함이 텍스트/좀 < B를 > > HTML </b > 코드 </P >

는 예를 들면 있도록 HTML 소스를 해석 할 수있는 모든 구성 요소가 있는가 <i>은 실제로 기울임 꼴로 표시되고 <b>은 굵게 표시됩니까?

이 텍스트 일부 HTML 코드가 포함되어 있습니다.

답변

21

기본적으로 JSF는 XSS 공격 홀을 방지하기 위해 백킹 빈 속성에서 HTML을 이스케이프 처리합니다. 이를 사용 중지하려면 <h:outputText>escape 속성을 false으로 설정하면됩니다.

이렇게하면 HTML이 이스케이프되지 않으므로 웹 브라우저가 해석합니다. 구체적인 문제에 관련없는


, 여기에 기본적으로 사용자가 제어 입력 이스케이프를 다시 표시하고로 XSS 공격의 조심하십시오. 당신은 미리 그것을 위생 처리하고 싶을지도 모릅니다.

관련 문제