HTML Editor

DATE : 2024/1/11

앞서 HTML Entity에서 어떻게 하면 XSS를 막을 수 있는 지, 그 방법에 대해 알아보았다.

What is HTML Editor

HTML Editor는 블로그와 같은 곳에서 볼 수 있는 코드 작성 기능을 말한다.

HTML Editor를 사용해 코드를 작성할 때는 HTML Entity에서 대체 문자로 치환하던 특수 기호를

막을 수 없기 때문에 다른 방안이 필요하다.

HTML Editor를 사용하는 경우, 웬만하면 이 기능을 제거하는 걸 권유하지만

절대 그럴 수 없다면! 다음과 같은 과정을 통해 XSS에 대비해야 한다.

step#1

HTML Entity를 실행할 수 없는 예외적인 경우, XSS를 막기 위한 첫 번째 과정은

HTML Editor에 사용자가 입력한 내용 중 HTML 특수 문자는 모두 대체 문자로 치환하는 것이다.

step#2

모든 HTML 특수 문자를 치환한 상태에서 허용해줄 태그만 식별해 특수 문자로 복원 시킨다.

허용할 태그만 찾아낸다는 건, 특정 태그만 허용되고 나머지는 모두 차단한다는 뜻으로

white list 기반의 필터링이라 할 수 있다.

step#3

되살린 태그에 한해 태그 내에 악용할 수 있는 event handler가 있는 지 확인해

차단해야 하는 event handler는 제거한다.

이때는 step#2와 달리 차단할 event handler에 대해 필터링을 진행하기 때문에

black list 기반의 필터링이 수행된다고 할 수 있다.


HTML Editor를 사용하는 경우에는 이와 같이 3 step을 통해 XSS를 대비해줘야 한다!

이는 HTML Entity를 처리하지 못하는 예외적인 경우였기 때문에 추가적인 과정이 필요한 것이고

Last updated