-
Bug
-
Resolution: Done
-
Critical
-
1.2.1.Final
-
None
With parameters such as key=value&another+key=another+value you should first split on &, then split on =, and only then urldecode the resulting parts. Otherwise, you could get this:
input: key=tom%26jerry
urldecode (too early!) key=tom&jerry
split on &: ["key=tom", "jerry"]
split on =: [["key", "tom"], ["jerry"]]
instead of as it should have been:
input: key=tom%26jerry
split on &: ["key=tom%26jerry"]
split on =: [["key", "tom%26jerry"]]
urldecode the parts: [["key", "tom&jerry"]]