The request was rejected because the URL contained a potentially malicious String "//"
- 에러메시지만 봐도 알 수 있듯이, 슬래쉬가 두개 들어갔다고 알려주는 에러이다~
{{PROTOCOL}}://{{HOST}}//my/todo
나의 경우에는 이와 같이 my 앞에 슬래쉬를 두개 쳐주어서 난 에러
malicious는 악의적인 아이라는 뜻인데 // 라는 아이가 잠재적으로 악의적인 기능을 가지고 있는 것일까?
알아본 결과, 아래 첨부한 출처에서 해당 // , ; 같은 문자열이 url로 들어오게 되면 Path Traversal/Directory Traversal attacks
를 유발할 수 있다고 한다.
따라서 해당 위험을 막기 위해서 StrictHttpFirewall이 해당 url의 접근을 막는다는 것이다.
아이의 잠재적인 위험성을 설명해주는 글 및 원글
This article explains Spring Security's protection against malicious URLs that may cause the Path Traversal/Directory Traversal attacks.
DefaultHttpFirewall tries to normalize the malicious URLs. However, StrictHttpFirewall rejects the requests with a RequestRejectedException. Along with Path Traversal attacks, StrictHttpFirewall protects us from several other attacks. Hence it is highly recommended to use the StrictHttpFirewall along with its default configurations.
As always, the complete source code is available over on Github.