2016-06-20 3 views
0

내 응용 프로그램에 Monaco 또는 Ace과 같은 브라우저 기반 코드 편집기를 사용하여 다른 사용자가 실행할 브라우저의 일부 코드를 작성할 수 있도록하고 싶습니다. . 당신은 jsfiddle 또는 이와 유사한 것을 상상할 수 있습니다. 그러나 Cross-Site-Scripting 취약점을 공개하고 싶지 않습니다. 애플리케이션에서 이러한 툴을 적절하게 구현하고 XSS를 방지하는 방법에 대해서는별로 알지 못합니다.XSS 안전 브라우저 기반 코드 편집기를 만드는 방법

실행될 때 이러한 도구로 작성된 자바 스크립트를 "샌드 박스 (sandbox)"할 수있는 방법이 있습니까? JSFiddle, CodePen 및 온라인 편집기 등의 도구는 악의적 인 스크립트로부터 어떻게 보호합니까? 일반적으로 내 앱에서 브라우저 기반 코드 편집기를 사용할 때 XSS 취약점을 방지하기 위해 어떤 기법을 사용해야합니까?

답변

1

일반적으로 이러한 도구는 다른 도메인에서 스크립트를 실행합니다. 그래서 그들은 (의도적으로) Cross-Site Scripting에 취약합니다. 그러나 그들은 동일한 원산지 정책을 이용하여 샌드 박스를 만듭니다. 이것이 가장 간단하고 쉬운 방법입니다. 에디터 사이트에 로그인이 있어도이 샌드 박스 도메인에서 실행되는 스크립팅은 기본 도메인의 모든 콘텐츠에 액세스하는 것과 동일한 출처 정책에 의해 차단되므로 XSS는 오히려 쓸모가 없습니다.

관련 문제