2012-08-04 1 views

답변

2

JSF는 이에 대한 기능을 제공하지 않습니다.

가장 간단한 방법으로 replace()과 같이 String 인스턴스에서 조작을 수행하려면 the available methods of the String class을 사용할 수 있습니다.

text = text.replace(":)", "<img src=\"smile.png\" />"); 

가 (당신이 그런 " 같은 ... 세미콜론이 합법적 문자 시퀀스를 방지하기 위해, 아마도 정규식 또는 렉서와 함께, 더 세분화 된 매칭을 적용 할 수 있습니다 (또는 콜론 :) ... "잘못 JSF에서의 HTML 이미지와 조작 String 인스턴스를 제공하기 위해, 다음)

을 교체하는, 당신은 내장 HTML을 사용하지 false로 설정 escape 속성 <h:outputText>를 사용해야하는 것 - XSS 공격 구멍을 막는 데 사용되었습니다.

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

되는 HTML <img> 요소가 그대로 대신 때문에 탈출에 최종 사용자에 일반 텍스트를 표시되고의 웹 브라우저를 해석 할 것입니다 이런 식으로.

그러나 이미 예상했듯이 최종 사용자의 입력을 사전에 살균하지 않으면이 과정이 열려있을 수 있습니다 (물론 XSS attack holes). 최종 사용자는 웹 브라우저에 의해 문자 그대로 해석 될 텍스트에 <script>stealCookies()</script>을 추가하는 것과 같은 입력으로 나쁜 일을 할 수 있습니다. 당신은 이것에 대한 clean() 방법을 제공하는 다른 Jsoup 중 사용할 수 있습니다, 사전에 최종 사용자의 입력을 살균하는 (!하는 웃음을 교체하기 전에이 작업을 수행하거나뿐만 아니라 그 <img> 태그를 벗겨 수)

text = Jsoup.clean(text, Whitelist.basic()); 

+0

많은 감사합니다. BalusC – Rounak

관련 문제