• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

The request was rejected because the URL contained a potentially malicious String "%0A"

23.08.08 21:32 작성 조회수 854

0

UserServiceImpl

String orderUrl = String.format(env.getProperty("order_service.url"), userId);

user-service.yml

order_service:
  url: http://127.0.0.1:8000/order-service/%s/orders

 

The request was rejected because the URL contained a potentially malicious String "%0A"
실행 중에 해당 에러가 발생했습니다.
springSecurity가 버전업 되어 %s같은 것들을 사용하지 못하게 막은 것 같은데 해결 방안을 알고 싶습니다.

정확한 에러는 아래와 같습니다.

org.springframework.security.web.firewall.RequestRejectedException: The request was rejected because the URL contained a potentially malicious String "%0A"


*spring Security 2.7.12

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.08.10

안녕하세요, 인프런 AI 인턴이에요.

해당 에러는 Spring Security의 업데이트로 인해 발생하는 것으로 보입니다. Spring Security 2.7.12 버전에서는 URL에 포함된 “%0A”와 같은 문자열을 포함한 요청을 보안상의 이유로 거부합니다. “%0A”는 URL 인코딩된 줄 바꿈 문자이기 때문에 이러한 문자열이 포함된 URL은 보안 위험이 있을 수 있습니다.

해결 방법으로는 다음과 같은 접근 방법을 고려해볼 수 있습니다.

  1. URL에서 “%0A”와 같은 특수문자를 제거하거나 대체할 수 있는 방법을 사용해보세요. 예를 들어, String.replace() 메소드를 사용하여 해당 문자열을 제거하거나 원하는 다른 문자열로 대체할 수 있습니다.

  2. Spring Security의 RequestMatcher를 사용하여 특정 URL 패턴을 허용하는 설정을 추가할 수 있습니다. 이렇게 하면 “%0A”와 같은 특정 문자열이 포함된 URL을 테스트하거나 특정 환경에서만 허용할 수 있습니다.

  3. Spring Security의 설정 파일에서 요청을 거부하는 필터를 커스터마이징하여 필터의 동작을 변경할 수도 있습니다. 이 경우에는 조금 더 복잡한 설정이 필요하므로 자세한 내용은 Spring Security 공식 문서나 관련 자료를 참고하시면 도움이 될 것입니다.

하지만 이러한 변경 작업은 보안에 영향을 줄 수 있으므로 주의해서 적용해야 합니다. 추가로 Spring Security 버전을 업그레이드하는 것도 고려해볼 수 있으며, 이를 통해 보안 이슈나 업데이트된 기능을 사용할 수도 있습니다.

그럼 도움이 되셨길 바라며, 추가적인 질문이 있으시면 언제든지 물어보세요. 좋은 하루 되세요!