XSS(크로스 사이트 스크립팅): 웹 보안 취약점 중 하나로, 공격자가 악의적인 스크립트를 웹 페이지에 삽입하여 사용자들의 브라우저에서 실행시키는 공격 형태, 공격자는 사용자의 세션 정보를 탈취하거나 악성 행동을 수행할 수 있다.
Stored XSS (영구 저장형 XSS):
악의적인 스크립트가 웹 서버에 저장되어 다른 사용자들이 해당 스크립트를 불러와 실행하게 된다.
댓글, 포럼 게시물, 프로필 설명 등 사용자 생성 콘텐츠에 주로 발생
Reflected XSS (반사형 XSS):
사용자가 악의적인 링크를 클릭하거나 악의적인 데이터를 서버로 보낼 때 발생
서버는 해당 데이터를 동적으로 웹 페이지에 포함시키고, 이로 인해 악성 스크립트가 사용자의 브라우저에서 실행된다
DOM-based XSS:
Document Object Model(DOM)을 조작하여 공격하는 형태로, 웹 페이지의 동적인 부분을 대상으로 한다.
클라이언트 측 스크립트가 DOM 조작에 의존하는 경우 발생할 수 있다.
피해를 막는 방법
입력값 검증 및 정제: 사용자로부터 입력을 받을 때, 입력값을 검증하고 허용된 문자만 허용하는 필터링을 수행해야함
입력값을 서버로 전달하기 전에 스크립트 코드를 제거하거나 이스케이프하여 처리하는 방식을 적용
출력 시 이스케이프: 사용자로부터 입력을 받아 출력할 때에도 특수 문자를 이스케이프하여 스크립트가 실행되지 않도록 해야 한다. 웹 어플리케이션에서 출력하는 모든 부분에 대해 이스케이프 처리를 적용하기..!
Content Security Policy (CSP): CSP는 웹 사이트에서 로드될 수 있는 리소스를 제한하여 악성 스크립트의 실행을 방지
이 정책은 웹페이지의 헤더에 설정되며, 스크립트나 스타일 등 외부 리소스의 로드를 제한하거나, 특정 도메인에서만 리소스를 로드하도록 설정할 수 있다.
HttpOnly 및 Secure 속성 설정: 쿠키를 사용할 때, 중요한 쿠키에 대해서는 HttpOnly와 Secure 속성을 설정해야 하는데, HttpOnly 속성은 자바스크립트에서 쿠키에 접근하지 못하도록 하고, Secure 속성은 HTTPS 연결에서만 쿠키를 전송하도록 설정
'의문점 공부하기 > 📌 Java' 카테고리의 다른 글
📌 throw와 throws의 차이가 있는걸까? (0) | 2023.08.24 |
---|---|
📌 의존성 주입 방법은 무엇이 있을까 ++ ? (0) | 2023.08.22 |
📌 SQL Injection을 피할 수 있는 방법은 뭐가 있을까?? (0) | 2023.08.18 |
📌 스프링 MVC와 struts의 차이에 대하여 (0) | 2023.08.16 |
📌 그렇다면 쿠키를 사용할 수 없을 때 세션을 대신 사용할 수 있을까!?!??!???? (0) | 2023.08.14 |