안녕하세요,
저희는 discourse를 사용하여 포럼을 운영하고 있으며, 다음과 같은 요청을 보내는 자동화 도구를 보유하고 있습니다:
agent.get(`${this.baseUrl}/admin/users/list/all.json?email=${emailAddress}`)
최근 이메일 주소에 % 문자가 포함된 문제를 발견했습니다. 인코딩되지 않은 문자 때문에 GET 요청이 실패한 것으로 추정됩니다.
이메일 문자열에 encodeURI를 사용하는 것을 고려해 보았지만, discourse가 일치하는 이메일을 조회하기 전에 디코딩을 수행하지 않으면 잠재적으로 잘못된 음수(false negative)가 발생할 수 있어 우려가 있습니다.
GitHub 소스 코드를 확인해 보았지만, ruby나 해당 저장소에 충분히 익숙하지 않아 확신을 갖기 어렵습니다.
admin/users/list/all 라우트에 전달되는 이메일 주소에 encodeURI를 사용하는 것이 안전한가요? discourse는 쿼리를 실행하기 전에 매개변수를 디코딩합니까?