2010-11-23 4 views
0

다음 시나리오가 보안 위험 (XSS) 인 경우 생각합니다. 내 컨트롤러 중 하나에서
내가 가진 자바 스크립트 요청에 응답 :컨트롤러 내에서 html.erb 부분을 렌더링 할 때 Javascript를 이스케이프 처리합니다.

format.js { render :partial => "myobjects" }` 

myobjects 부분 (_myobjects.html.erb가) 데이터베이스에서 물건을 입력 부분 html로 (즉, 일부 템플릿에서 사용)입니다.

$.get(this.href, function(data) { 
    $("#myelement").html(data); 
}, "script"); 

지금이 안전한지 자신에게 물어 : jQuery를 함께 지금 myobjects의 콘텐츠를 해당 사이트에 뭔가를 대체 할 수있는 다음과 같은 Ajax 요청을한다.

  • 위와 같은 Ajax 요청에서 myobjects partial을 사용할 때 명시 적으로 일부를 이스케이프 처리해야합니까?
  • 부분적으로 수동으로해야합니까? 또는 어떻게 든 렌더링 방법을 알릴 수 있습니까?
  • 일반적인 html.erb 템플릿에서 같은 부분을 사용할 때 partial 내부에 escape_javascript 호출을 추가하면 어떻게됩니까?

답변

0

나는 그것이 실제로보다 복잡하다고 생각했습니다. < % = %>을 (를) 사용하는 모든 것들은 기본적으로 보안에 의한 것입니다 (HTML 태그가 자동으로 레일스> = 3에서 이스케이프됩니다). 따라서 위의 시나리오는 데이터베이스 내용이 부분적으로 삽입되는 위험이 없습니다.

관련 문제