10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
# File 'lib/sqreen/legacy/waf_redactions.rb', line 10
def redact_attacks!(attacks, values)
return attacks if values.empty?
values = values.map { |v| v.downcase if v.is_a?(String) }
attacks.each do |e|
next(e) unless e[:infos]
next(e) unless e[:infos][:waf_data]
parsed = JSON.parse(e[:infos][:waf_data])
redacted = parsed.each do |w|
next unless (filters = w['filter'])
filters.each do |f|
next unless (v = f['resolved_value'])
next unless values.include?(v.downcase)
f['match_status'] = SensitiveDataRedactor::MASK
f['resolved_value'] = SensitiveDataRedactor::MASK
end
end
e[:infos][:waf_data] = JSON.dump(redacted)
end
end
|