From e8111c5c6fc9ba9dca92e4cba86fa37f8f1b5d75 Mon Sep 17 00:00:00 2001 From: Hibariya Date: Mon, 18 Dec 2023 10:03:27 +0000 Subject: [PATCH] Rack::Request#media_type is available now --- lib/rack/utf8_sanitizer.rb | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/lib/rack/utf8_sanitizer.rb b/lib/rack/utf8_sanitizer.rb index 5e50424..cc5a3d1 100644 --- a/lib/rack/utf8_sanitizer.rb +++ b/lib/rack/utf8_sanitizer.rb @@ -116,19 +116,11 @@ def build_strategy(options) end def sanitize_rack_input(env) - # https://github.com/rack/rack/blob/master/lib/rack/request.rb#L42 - # Logic borrowed from Rack::Request#media_type,#media_type_params,#content_charset - # Ignoring charset in content type. - if content_type = env['CONTENT_TYPE'] - content_type = content_type.split(/[;,]/, 2).first - if content_type - content_type.strip! - content_type.downcase! - end - end + request = Rack::Request.new(env) + content_type = request.media_type return unless @sanitizable_content_types.any? {|type| content_type == type } - charset = Rack::Request.new(env).content_charset + charset = request.content_charset return if charset && charset.downcase != 'utf-8' uri_encoded = URI_ENCODED_CONTENT_TYPES.any? {|type| content_type == type}