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.
19 lines
419 B
19 lines
419 B
5 years ago
|
# 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
|