SpringBoot에서 가장쉽게 Xss filtering을 하는 방법
SpringBoot프레임워크 안에서 사용할 수 있는 Xss filtering 라이브러리를 소개합니다.
이 라이브러리를 사용하면, 어떠한 설정 없이도 다음과 같이 어노테이션 기반으로 Xss Filtering을 진행할 수 있습니다.
@RestController
public class Example{
@XssFiltering
@GetMapping("/example")
public Object helloworld(@Xss String param1,
@Xss("json") SomeObject param2,
@Xss("string") String param3, String param4){
}
}
@Xss 어노테이션을 설정함으로써 필터링에 포함시킬 파라미터를 설정할 수 있고 @Xss 어노테이션이 없으면 Xss 필터링을 하지 않습니다.
또한, @Xss어노테이션 안에 값을 설정함으로써, 어떠한 타입의 인풋 데이터를 필터링 할 지 결정할 수 있습니다.
라이브러리에서 기본적으로 제공하는 값들은 다음과 같습니다.
- @Xss("json") : Json 타입의 인풋 데이터를 필터링 합니다.
- @Xss("string") : String 타입의 인풋 데이터를 필터링 합니다.
- @Xss : 만약 비어있다면, 필터링할 파라미터의 타입 이름을 모두 소문자로 바꾼값이 바인딩 됩니다.
다운로드 방법
repositories {
mavenCentral()
maven {url 'https://jitpack.io'} // 1. xss-stage는 jitpack을 이용해 배포되고 있으므로 이 라인을 꼭! 추가해줘야 함.
}
dependencies {
implementation 'com.github.xss-stage:xss-core:1.2' // 2. 필수 - XssFiltering 확장과 적용하는 방법을 제공함.
implementation 'com.github.xss-stage:xss-extension-string:1.2' // 3. string 형태의 데이터 타입을 필터링 하고 싶으면 추가
implementation 'com.github.xss-stage:xss-extension-json:1.2.1' // 4. json 형태의 데이터 타입을 필터링 하고 싶으면 추가
}
위 코드와 같이
1, 2, 3, 4번을 (3, 4 번의 경우 필요한 경우) 받으면서 사용가능 합니다.
또한, 필요한 경우, xss filtering 규칙들을 확장을 통해 생성할 수 있는데, 자세한 사항은 프로젝트 링크를 참조하세요
https://github.com/xss-stage/xss-core
'끄적끄적' 카테고리의 다른 글
[Sonarqube] Sonarqube 설치 + PR decoration 하기 (0) | 2023.05.07 |
---|---|
[끄적끄적] Rust로 PS 후기 (0) | 2023.04.17 |
[Tistory Skin] CERULEAN_BLUE 무료 배포 (2) | 2022.12.20 |
[CI/CD] Jenkins, Github webhook을 이용해서 CI/CD 구축하기 (1) | 2022.08.27 |
[Ubuntu] 라떼판다 오리지널에 Ubuntu 20.04 LTS 올리기 (16.04, 18.04도 가능) (0) | 2022.08.17 |