You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
18 lines
419 B
18 lines
419 B
# 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
|
|
|