XSS란 Cross-site Scripting의 약어로, 사이트 간 스크립팅을 의미합니다. 웹 애플리케이션에서 많이 나타나는 취약점의 하나로 웹사이트 관리자가 아닌 사람이 웹 페이지에 악성 자바스크립트를 삽입할 수 있습니다. 쉽게 설명해서 커뮤니티 게시판에 <script>alert('하하 멍청한 관리자놈!');</script>이라고 게시물을 입력해봅시다. 그리고 그 게시물을 읽었을 때 아래와 같은 화면이 나오면 지금 XSS가 뚫려있는 것입니다.
<script>alert(1)</scirpt>는 말할 가치도 없는 XSS의 가장 초보적인 방법입니다. XSS에는 헬 모드라는 것이 있어서 듣도 보도 못한 별의별 특수문자나 인코 데된 문자를 응용하여 공격이 들어오게 됩니다.
웹사이트 XSS취약점 보완에는 라이브러리를 가져다 사용하는 것이 국룰이며, 라이브러리는 전문적인 보안 업체나 기업에서 만든 것을 사용하는 것이 좋습니다. 대표적으로 추천드리는 것은 OWASP Antisamy, NAVER Lucy XSS Filter, ESAPI 입니다. 해당 키워드를 제시해드리니 검색해보시고 자신의 웹 사이트에 적절한 것을 선택하여 적용하시면 됩니다.
XSS공격은 매년 업그레이드됩니다. 마치 감기바이러스처럼요. 업데이트가 더딘 라이브러리는 결국 뚫리게 됩니다. 그점을 주의하며 라이브러리를 선택해봅시다.