본문 바로가기
Hack/Web

[Kotlin] Use-Site Target이 존재하지 않을 경우 검증 우회 가능

by Becoming a Hacker 2023. 2. 21.
반응형

Data Class의 경우 NotBlank와 같은 검증 Annotation을 Use-Site Target과 같이 사용하지 않을 경우, 생성자 구문에 검증 코드가 작성되는 문제가 있음

// 생성자에 NotEmpty와 NotBlank가 적용되는 잘못된 코드
data class UserInfoDto (
    @NotEmpty(message="값이 비어있으면 안됩니다.")
    @NotBlank
    @Email(message="이메일 주소를 입력해주세요.")
    var email : String?,
    var password : String?,
)

 

반드시 Use-Site Target을 명시하여 필드 변수에 대한 검증을 수행하도록 해야 함

// 변수에 NotEmpty와 NotBlank가 적용되는 올바른 코드
data class UserInfoDto (
    @field:NotEmpty(message="값이 비어있으면 안됩니다.")
    @field:NotBlank
    @field:Email(message="이메일 주소를 입력해주세요.")
    var email : String?,
    var password : String?,
)

댓글