Sha256: 7454c77f4fed0f132225620ed74d9c33b24a8e74f7658ed82a79ed5485097bde

Contents?: true

Size: 1.44 KB

Versions: 29

Compression:

Stored size: 1.44 KB

Contents

# typed: ignore

# Copyright (c) 2015 Sqreen. All Rights Reserved.
# Please refer to our terms for more information: https://www.sqreen.com/terms.html

module Sqreen
  module Legacy
    module WafRedactions
      class << self
        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

        # see https://github.com/sqreen/TechDoc/blob/master/content/specs/spec000022-waf-data-sanitization.md#changes-to-the-agents
        def redact_exceptions!(exceptions, values)
          return exceptions if values.empty?

          exceptions.each do |e|
            next(e) unless e[:infos]
            next(e) unless e[:infos][:waf]

            e[:infos][:waf].delete(:args)
          end
        end
      end
    end
  end
end

Version data entries

29 entries across 29 versions & 1 rubygems

Version Path
sqreen-1.25.1 lib/sqreen/legacy/waf_redactions.rb
sqreen-1.25.0 lib/sqreen/legacy/waf_redactions.rb
sqreen-1.24.3 lib/sqreen/legacy/waf_redactions.rb
sqreen-1.24.2 lib/sqreen/legacy/waf_redactions.rb
sqreen-1.24.1 lib/sqreen/legacy/waf_redactions.rb
sqreen-1.24.0 lib/sqreen/legacy/waf_redactions.rb
sqreen-1.23.2 lib/sqreen/legacy/waf_redactions.rb
sqreen-1.23.1 lib/sqreen/legacy/waf_redactions.rb
sqreen-1.23.0 lib/sqreen/legacy/waf_redactions.rb
sqreen-1.22.1 lib/sqreen/legacy/waf_redactions.rb
sqreen-1.22.0-java lib/sqreen/legacy/waf_redactions.rb
sqreen-1.22.0 lib/sqreen/legacy/waf_redactions.rb
sqreen-1.21.1-java lib/sqreen/legacy/waf_redactions.rb
sqreen-1.21.1 lib/sqreen/legacy/waf_redactions.rb
sqreen-1.21.0-java lib/sqreen/legacy/waf_redactions.rb
sqreen-1.21.0 lib/sqreen/legacy/waf_redactions.rb
sqreen-1.20.4-java lib/sqreen/legacy/waf_redactions.rb
sqreen-1.20.4 lib/sqreen/legacy/waf_redactions.rb
sqreen-1.21.0.beta3-java lib/sqreen/legacy/waf_redactions.rb
sqreen-1.21.0.beta3 lib/sqreen/legacy/waf_redactions.rb