こんにちは。
Discourse を使用してフォーラムを管理しており、次のようなリクエストを行う自動化ツールがあります。
agent.get(`${this.baseUrl}/admin/users/list/all.json?email=${emailAddress}`)
最近、これらのメールアドレスの 1 つに % 文字が含まれている問題を見つけました。エンコードされていない文字が原因で、GET リクエストが失敗したと思われます。
[encodeURI](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURI) をメール文字列に使用することを検討しましたが、Discourse が一致するメールをクエリする前にデコードしない可能性があり、誤検出につながるのではないかと心配しています。
GitHub のソースを確認しましたが、Ruby やリポジトリに詳しくないため、確信が持てません。
admin/users/list/all ルートに渡されるメールアドレスに encodeURI を使用しても安全ですか? Discourse はクエリを行う前にパラメータをデコードしますか?