diff --git a/modules/middleware/validateQuery.js b/modules/middleware/validateQuery.js index 4d2d185..9b3fade 100644 --- a/modules/middleware/validateQuery.js +++ b/modules/middleware/validateQuery.js @@ -10,22 +10,19 @@ function isKnownQueryParam(param) { return !!knownQueryParams[param]; } -function sanitizeQuery(originalQuery) { - const query = {}; - - Object.keys(originalQuery).forEach(param => { - if (isKnownQueryParam(param)) query[param] = originalQuery[param]; - }); - - return query; -} - /** * Reject URLs with invalid query parameters to increase cache hit rates. */ export default function validateQuery(req, res, next) { - if (!Object.keys(req.query).every(isKnownQueryParam)) { - return res.redirect(302, req.path + createSearch(sanitizeQuery(req.query))); + const keys = Object.keys(req.query); + + if (!keys.every(isKnownQueryParam)) { + const newQuery = keys.filter(isKnownQueryParam).reduce((query, key) => { + query[key] = req.query[key]; + return query; + }, {}); + + return res.redirect(302, req.path + createSearch(newQuery)); } next();