From 0387d17e2d2ff9304c18f06bab0b996ead54a4da Mon Sep 17 00:00:00 2001 From: Magnus Hagander Date: Wed, 18 Nov 2020 11:28:40 +0100 Subject: [PATCH] Replace non-ascii chars in template names when building xkey We don't have non-ascii characters in any of our correct URLs, but people can still specify them on the URL. In this case the xkey isn't going to match anything anyway, so it is not critical how we handle it, especially since the generated page is going to be a 404 anyway. So just use the simple built-in replace function. --- pgweb/util/middleware.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pgweb/util/middleware.py b/pgweb/util/middleware.py index e16796fd..acbb7f3f 100644 --- a/pgweb/util/middleware.py +++ b/pgweb/util/middleware.py @@ -40,7 +40,7 @@ class PgMiddleware(object): response['x-do-esi'] = "1" tlist.remove('base/esi.html') if tlist: - response['xkey'] = ' '.join(["pgwt_{0}".format(hashlib.md5(t.encode('ascii')).hexdigest()) for t in tlist]) + response['xkey'] = ' '.join(["pgwt_{0}".format(hashlib.md5(t.encode('ascii', errors='replace')).hexdigest()) for t in tlist]) # Set security headers sources = OrderedDict([