RoR 3은 ERB 템플릿을 자동으로 정리합니다 (올바르게 완료된 경우). 그러나 응용 프로그램 계층에만 RoR을 사용하고 프레젠테이션에는 javascript를 사용하는 작은 프로젝트가 있습니다. 그래서, 전형적인 요청은 레일스 라우트에 대한 ajax 호출이며 반환 된 JSON을 렌더링합니다. 문제는 js를 삽입하고, 제목이 <script>alert('hello')</script>
인 새 제품을 만들고 다음 요청에서 그대로 반환되며 브라우저가 행복하게 스크립트를 해석 할 수 있다는 것입니다. 레일에서 JSON을 살균하는 가장 좋은 방법
- 에 가장이 게시물에 입력을 살균인가?
- 서버에서 json 응답을 삭제 하시겠습니까? (override to_json?)
- 클라이언트에서 json 응답을 삭제 하시겠습니까?
모든 입력에 감사드립니다.
사려 깊은 반응에 감사드립니다. 사용자가 제공 한 마크 업을 포함 할 수있는 모델 속성이 있습니다. 그래서 관찰자가 before_validation을 제거하기로 결정했습니다. –
sanitize gem은 훌륭하지만 JRuby와 같은 대안 환경에서는 작성자가 지원하지 않기 때문에 빌드되지 않으므로보다 자세한 해결책이 더 좋을 것입니다. – rcd