XSS(Cross-site scripting)?
사이트 간 스크립팅, 크로스 사이트 스크립팅(Cross-site scripting)은 웹 애플리케이션에서 많이 나타나는 취약점의 하나로
웹사이트 관리자가 아닌 이가 웹 페이지에 악성 스크립트를 삽입할 수 있는 취약점이다.
이름이 CSS가 아닌 이유는 웹 기술인 CSS와 헷갈릴 수 있어서다. 주로 여러 사용자가 보게 되는 전자 게시판에 악성 스크립트가 담긴 글을 올리는 형태로 이루어진다.
이 취약점은 웹 애플리케이션이 사용자로부터 입력받은 값을 제대로 검사하지 않고 사용할 경우 나타난다.
이 취약점으로 해커가 사용자의 정보(쿠키, 세션 등)를 탈취하거나, 자동으로 비정상적인 기능을 수행하게 할 수 있다. 주로 다른 웹사이트와 정보를 교환하는 식으로 작동하므로 사이트 간 스크립팅이라고 한다.
Lucy-Xss-Servlet-Filter를 활용한 대응
pom.xml
<dependency>
<groupId>com.navercorp.lucy</groupId>
<artifactId>lucy-xss-servlet</artifactId>
<version>2.0.0</version>
</dependency>
web.xml
<!-- xssEscapeServletFilter는 CharacterEncodingFilter 뒤에 위치해야 한다. -->
<filter>
<filter-name>xssEscapeServletFilter</filter-name>
<filter-class>com.navercorp.lucy.security.xss.servletfilter.XssEscapeServletFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>xssEscapeServletFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
/resource 폴더 내에 "lucy-xss-servlet-filter-rule.xml" 파일을 생성 (주의 : lucy-xss-servlet-filter-rule.xml 파일명 유지)
lucy-xss-servlet-filter-rule.xml 필터링 룰 작성 (메뉴얼 참고)
참고사이트
https://ko.wikipedia.org/wiki/%EC%82%AC%EC%9D%B4%ED%8A%B8_%EA%B0%84_%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8C%85
https://github.com/naver/lucy-xss-servlet-filter
'Spring > Framework' 카테고리의 다른 글
[Spring] XSS(Cross-site scripting) JSON 데이터 XSS 처리 하기 (0) | 2023.05.03 |
---|---|
[Spring] Spring Framework와 Spring Boot의 차이점 (0) | 2023.04.11 |