XSS(Cascading Style Sheet)
줄이면 CSS인데 Cascading Style Sheet와 혼동이 올 수 있어서 XSS라고 부릅니다.
SQL Injection과 함께 웹 상에서 가장 기초적인 취약점 공격 방법의 일종으로, 웹 사이트에 있는 취약점을 이용하여 공격자가 악성 스크립트를 삽입하고, 이 스크립트가 사용자 브라우저에서 실행될 때 발생하는 보안 취약점입니다.
공격에 성공하면 보통 의도치 않은 행동을 수행시키거나 쿠키나 세션 토큰 등의 민감한 정보를 탈취합니다.
대개 웹 애플리케이션에서 입력 값을 검증하지 않아 발생합니다. 따라서 개발자들은 사용자 입력 값을 받을 때, 적절한 검증 및 이스케이프 처리를 수행하여 XSS 공격을 방지해야 합니다.
공격 방법에 따라 Stored XSS와 Reflected XSS로 나뉩니다. Stored XSS는 사이트 게시판이나 댓글, 닉네임 등 스크립트가 서버에 저장되어 실행되는 방식이고, Reflected XSS는 보통 URL 파라미터(특히 GET 방식)에 스크립트를 넣어 서버에 저장하지 않고 그 즉시 스크립트를 만드는 방식이다. 후술된 내용 대부분은 Stored XSS라고 생각하면 됩니다. Reflected XSS의 경우 브라우저 자체에서 차단하는 경우가 많아 상대적으로 공격을 성공시키기 어렵습니다.
주로 CSRF를 학위 위해서 사용되기 때문에 종종 CSRF와 혼동는 경우가 있으나, XSS는 자바스크립트를 실행시키는 것이고, CSRF는 특정한 행동을 시키는 것이므로 다릅니다.
XSS 공격은 웹 보안에서 중요한 이슈 중 하나이며, 웹 개발자들은 보안 취약점에 대한 이해와 이를 방지하기 위한 적극적인 대응이 필요합니다.