아래 DOM Based XSS 대응방법을 배우면서 XSS 필터인 Lucy가 궁금해졌다. 네이버에서 만든 오픈소스 XSS 필터 화이트리스트 기반으로 필터링한다고 나와있다. 여기서 어떤 도메인을 정해놨을까 궁금했다.
DOM Based XSS 대응방법
- 입력값에 실행 가능한 코드가 포함되어 있는지 확인
=> 오류 처리, 제거 후 사용, 안전한 문자로 대체해서 사용 ⇒ HTML 인코딩 처리한다.- 출력값에 의도하지 않은 실행 가능한 코드가 포함되어 있는지 확인
=> 제거 후 출력, (안전한 문자로 대체해서 사용 ⇒ HTML 인코딩해서 출력=> 스크립트로써 의미를 가지지 않게 된다.)- 필터링, 인코딩 작업을 수행할 때는 검증된 로직, 라이브러리, 프레임워크를 사용해서 구현
참고- 네이버에서 만든 XSS Filter인 Lucy 오픈 소스 라이브러리이다.
- OWASP Cheat Sheet Series : Cross Site Scripting Prevention Cheat Sheet는 XSS 공격 예시를 알려줌으로써 해당 예시를 참고해 XSS 필터를 만드는데 도움을 준다.
네이버에서 제공하는 URL 화이트리스트가 있나 깃허브를 뒤져보았다.
src/test/resources/white-url.xml 이 파일에서 url 화이트리스트가 존재했다. 해당 파일에 개발자/관리자가 원하는 URL을 지정하면 된다.
신기하다!