2011-04-08 5 views
1

때로는 어떤 텍스트 필드에도 스크립트가 포함될 우려가 있습니다. 스크립트가 여전히 데이터베이스에 저장되어 있기 때문에 sanitize 메서드를 사용할 수 있지만 오랫동안 사용할 수는 없습니다.텍스트 만 Rails에 입력

예를 들어, input 필드에서 레일스를 일반 텍스트 만 받아들이게하려면 어떻게해야합니까? 그리고 모두 < 또는 > 중 어느 것이 든 위험합니까?

감사합니다.

답변

0

당신은 당신의 모델 before_save 콜백

API 링크를 html_escape 수 있습니다.

당신은 당신이 올바르게 이스케이프되어 있는지 확인하기 위해이 같은 시간 도우미를 사용할 수있는 레일 2를 사용하는 경우 :

<%=h @model.input_data %> 
0

을 기본적으로 레일에 3.0 이상, 모든 출력은 HTML을 탈출했다.

그러나 html/javascript 등으로 데이터베이스를 오염시키지 않으려는 경우 before_save callback을 활용할 것입니다.

<%= h @record.field %> 
:

하면, 당신은 html_escape를 사용하거나 h 별명 < 레일 (3)을 사용하는 경우