Merge pull request #1319 from sdougbrown/db/querystring-slashes

[rewrite] queryString parse - Prevent undesired date parsing
This commit is contained in:
Leo Horie 2016-09-15 16:28:42 -04:00 committed by GitHub
commit 111187cb4f
2 changed files with 5 additions and 1 deletions

View file

@ -15,7 +15,7 @@ module.exports = function(string) {
if (value !== "" && !isNaN(number) || value === "NaN") value = number
else if (value === "true") value = true
else if (value === "false") value = false
else {
else if (value.charAt(0) !== "/") {
var date = new Date(value)
if (!isNaN(date.getTime())) value = date
}

View file

@ -20,6 +20,10 @@ o.spec("parseQueryString", function() {
var data = parseQueryString("?%3B%3A%40%26%3D%2B%24%2C%2F%3F%25%23=%3B%3A%40%26%3D%2B%24%2C%2F%3F%25%23")
o(data).deepEquals({";:@&=+$,/?%#": ";:@&=+$,/?%#"})
})
o("handles escaped slashes followed by a number", function () {
var data = parseQueryString("?hello=%2Fen%2F1")
o(data.hello).equals("/en/1")
})
o("handles escaped square brackets", function() {
var data = parseQueryString("?a%5B%5D=b")
o(data).deepEquals({"a": ["b"]})