2009-06-17 2 views
3

나는 사용자가 다음과 같은 텍스트를문자열 "테스트 '<3'" '내 레일에서 "<3> 응용 프로그램

테스트 입력 할 수있는 이상한 문제에 봉착 테스트"'< 3 '

을로 표시

그것을 출력

시험 '< 3>

0123로서 내가 WHITE_LIST 사용하고 출력, 데이터베이스에 저장된 값에

은 다음과 같습니다

'테스트' '< 3' ''

이 생각하는 출력 원인이 될 수 무엇

어떤 종류의 태그이며 그것을 닫으려는 것입니다 (그것이 나에게 어떻게 보이는지).

감사합니다.

답변

2

&, < 및 @ 같은 Ruby의 특수 문자를 잘못 해석 할 수 있습니다. .rhtml 페이지에서 "h"방법을 사용해보십시오.

<strong><%= h("This is a quick Test'<3'.") %></strong> 

윌 출력 :

<strong>This is a quick Test'&lt;3'.</strong> 

그래서 브라우저로 해석됩니다

이 빠른 테스트 '< 3'입니다.

+0

'h' 무엇입니까 (I 그래서 나는 교정에 열려있어! 루비에 비교적 새로운 여전히 해요)? –

+1

'h'는'html_escape' 메쏘드의 별명입니다 : http://api.rubyonrails.org/classes/ERB/Util.html#M000337 – Pesto

+0

저는 실제로 h로 그것을 벗어나려고했지만 잘못된 시각을 보았습니다 , doh! white_list 문자열에서 h 문자열로 바꿨습니다. 내 발끝을 지켜줘서 고마워. – mwilliams

관련 문제