Sha256: 389eef8bd4d16c72ac096db9103375cefb66c2eb8040e184e319032af7afa5a0

Contents?: true

Size: 1.15 KB

Versions: 8

Compression:

Stored size: 1.15 KB

Contents

module CMSScanner
  # Not really an interesting file, but will use this class for convenience
  class Headers < InterestingFile
    # @return [ Hash ] The headers
    def entries
      res = NS::Browser.get(url)
      return [] unless res && res.headers
      res.headers
    end

    # @return [ Array<String> ] The interesting headers detected
    def interesting_entries
      results = []

      entries.each do |header, value|
        next if known_headers.include?(header.downcase)

        results << "#{header}: #{[*value].join(', ')}"
      end
      results
    end

    # @return [ Array<String> ] Downcased known headers
    def known_headers
      %w(
        age accept-ranges cache-control content-type content-length connection date etag expires
        location last-modified link pragma set-cookie strict-transport-security transfer-encoding
        vary x-cache x-content-security-policy x-content-type-options x-frame-options x-language
        x-permitted-cross-domain-policies x-pingback x-varnish x-webkit-csp x-xss-protection
      )
    end

    def eql?(other)
      super(other) && interesting_entries == other.interesting_entries
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
cms_scanner-0.0.12 app/models/headers.rb
cms_scanner-0.0.11 app/models/headers.rb
cms_scanner-0.0.10 app/models/headers.rb
cms_scanner-0.0.9 app/models/headers.rb
cms_scanner-0.0.8 app/models/headers.rb
cms_scanner-0.0.7 app/models/headers.rb
cms_scanner-0.0.6 app/models/headers.rb
cms_scanner-0.0.5 app/models/headers.rb