-
XSS, 'Cross-Site Scripting'은 웹 보안에서 자주 나오는 공격 방식이다.
비유를 들어 설명하자면,
친구들이랑 단톡방에서 놀고 있는데 그 방에 이상한 사람이 들어와서 누군가의 이름을 똑같이 따라 하면서 이상한 링크를 보내는 것이다. 그리고 그 방에 있던 다른 누군가는 "어? 이거 얘가 왜 보냈지?" 라고 생각하고 클릭해버리는 것이다. 그리고 그 링크 때문에 개인 정보나 대화 내용이 다 유출돼 버리는거다.
웹사이트로 치자면
나같은 허접이 만든 웹사이트에서 다른 사용자가 입력한 내용을 아무런 검증 없이 그대로 보여주는 경우가 있다.
누군가 입력란에 악성 스크립트를 넣어두면, 그걸 본 다른 사용자는 그 스크립트가 실행되어서 갑자기 공격 당하게 된다.
예를 들어 누군가 내가 만든 웹사이트의 댓글에 '<script>alert('하이루');</script>' 이런 것을 입력해 놓으면 다른 사람들이 그 페이지에 접속할 때마다 '하이루' 라는 팝업이 뜨는 거다..
더 무서운 건 쿠키를 훔쳐가서 세션을 탈취하는 짓도 할 수 있다는 거다..
아무튼 XSS 공격은 웹사이트에서 사용자 입력을 제대로 검증하지 않아서 발생하는 문제다.
이런 공격을 막기 위해 입력 데이터를 잘 검증하고.. HTML에 안전하게 표시하자.