Class: CMSScanner::Headers

Inherits:
InterestingFile show all
Defined in:
app/models/headers.rb

Overview

Not really an interesting file, but will use this class for convenience

Instance Attribute Summary

Attributes inherited from InterestingFile

#url

Instance Method Summary collapse

Methods inherited from InterestingFile

#==, #initialize

Constructor Details

This class inherits a constructor from CMSScanner::InterestingFile

Instance Method Details

#entries ⇒ Hash

Returns The headers.

Returns:

  • (Hash) —

    The headers



5
6
7
8
9
# File 'app/models/headers.rb', line 5

def entries
  res = NS::Browser.get(url)
  return [] unless res && res.headers
  res.headers
end

#eql?(other) ⇒ Boolean

Returns:

  • (Boolean)


33
34
35
# File 'app/models/headers.rb', line 33

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

#interesting_entries ⇒ Array<String>

Returns The interesting headers detected.

Returns:

  • (Array<String>) —

    The interesting headers detected



12
13
14
15
16
17
18
19
20
21
# File 'app/models/headers.rb', line 12

def interesting_entries
  results = []

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

    results << "#{header}: #{value}"
  end
  results
end

#known_headers ⇒ Array<String>

Returns Downcased known headers.

Returns:

  • (Array<String>) —

    Downcased known headers



24
25
26
27
28
29
30
31
# File 'app/models/headers.rb', line 24

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