class TaintedLove::Replacer::ReplaceRackBuilder::TaintedLoveRackMiddleware
Public Class Methods
new(app)
click to toggle source
# File lib/tainted_love/replacer/replace_rack_builder.rb, line 19 def initialize(app) @app = app end
Public Instance Methods
call(env)
click to toggle source
# File lib/tainted_love/replacer/replace_rack_builder.rb, line 23 def call(env) @app.call(taint_env(env)) end
taint_env(env)
click to toggle source
# File lib/tainted_love/replacer/replace_rack_builder.rb, line 27 def taint_env(env) uppercase_keys = env.to_h.keys.select { |k| k[/[A-Z]/] } values = {} uppercase_keys.each do |key| new_key = key.dup.taint new_value = env[key].dup.taint TaintedLove.tag(new_key, source: "Key #{key.inspect} Rack env", value: new_key) TaintedLove.tag(new_value, source: "Rack env[#{key.inspect}]", value: new_value) values[new_key] = new_value env.delete(key) end env.merge!(values) env end