XSS?

XSS(Cross-site Scripting)란 SQL injection과 함께 웹 상에서 가장 기초적인 취약점 공격 방법의 일종으로, 악의적인 사용자가 공격하려는 사이트에 스크립트를 넣는 기법을 말한다. 공격에 성공하면 사이트에 접속한 사용자는 삽입된 코드를 실행하게 되며, 보통 의도치 않은 행동을 수행시키거나 쿠키나 세션 토큰 등의 민감한 정보를 탈취한다.

공격방법

  1. Stored XSS
    • Stored XSS는 사이트 게시판이나 댓글, 닉네임 등 스크립트가 서버에 저장되어 실행되는 방식
  2. Reflected XSS
    • Reflected XSS는 보통 URL 파라미터(특히 GET 방식)에 스크립트를 넣어 서버에 저장하지 않고 그 즉시 스크립트를 만드는 방식

대부분은 Stored XSS라고 생각하면 된다. Reflected XSS의 경우 브라우저 자체에서 차단하는 경우가 많아 상대적으로 공격을 성공시키기 어렵다.
-나무위키-

대응방법

  • 문자입력을 작성한 그대로 입력하지 않는다
    • 문자를 필터링
    • 서버에서 브라우저 전송시 문자 인코딩

<script><는 html문자 &lt;로, >&gt;로 변경한다.
이러한 XSS필터링해주는 라이브러리를 활용하는것도 좋을것같다 (lucy-xss-filter 링크)

참조