about summary refs log tree commit diff
path: root/app/middleware/handle_bad_encoding_middleware.rb
diff options
context:
space:
mode:
authorThibG <thib@sitedethib.com>2020-01-05 13:51:50 +0100
committerGitHub <noreply@github.com>2020-01-05 13:51:50 +0100
commitbcfd6e3bb48f6e0eb88f7f3a650832842ab69166 (patch)
tree0e2bb7334c7954bee2962ed78565046e3b974725 /app/middleware/handle_bad_encoding_middleware.rb
parent22daf24600d8e99e4569740ee5836d25c70c1e8b (diff)
parent83359fef2b04e81b35b047510ddb0c79bcf8ddaa (diff)
Merge pull request #1259 from ThibG/glitch-soc/merge-upstream
Merge upstream changes
Diffstat (limited to 'app/middleware/handle_bad_encoding_middleware.rb')
-rw-r--r--app/middleware/handle_bad_encoding_middleware.rb18
1 files changed, 18 insertions, 0 deletions
diff --git a/app/middleware/handle_bad_encoding_middleware.rb b/app/middleware/handle_bad_encoding_middleware.rb
new file mode 100644
index 000000000..6fce84b15
--- /dev/null
+++ b/app/middleware/handle_bad_encoding_middleware.rb
@@ -0,0 +1,18 @@
+# frozen_string_literal: true
+# See: https://jamescrisp.org/2018/05/28/fixing-invalid-query-parameters-invalid-encoding-in-a-rails-app/
+
+class HandleBadEncodingMiddleware
+  def initialize(app)
+    @app = app
+  end
+
+  def call(env)
+    begin
+      Rack::Utils.parse_nested_query(env['QUERY_STRING'].to_s)
+    rescue Rack::Utils::InvalidParameterError
+      env['QUERY_STRING'] = ''
+    end
+
+    @app.call(env)
+  end
+end