Class: SiteInspector::Endpoint::Headers

Inherits:
Check
  • Object
show all
Defined in:
lib/site-inspector/checks/headers.rb

Instance Attribute Summary

Attributes inherited from Check

#endpoint

Instance Method Summary collapse

Methods inherited from Check

enabled=, enabled?, #host, #initialize, #inspect, #name, name, #request, #response

Constructor Details

This class inherits a constructor from SiteInspector::Endpoint::Check

Instance Method Details

#[](header) ⇒ Object



51
52
53
# File 'lib/site-inspector/checks/headers.rb', line 51

def [](header)
  headers[header]
end

#allObject Also known as: headers

Returns an array of hashes of downcased key/value header pairs (or an empty hash)



46
47
48
# File 'lib/site-inspector/checks/headers.rb', line 46

def all
  @all ||= (response && response.headers) ? Hash[response.headers.map { |k, v| [k.downcase, v] }] : {}
end

#click_jacking_protectionObject



28
29
30
# File 'lib/site-inspector/checks/headers.rb', line 28

def click_jacking_protection
  headers['x-frame-options']
end

#click_jacking_protection?Boolean

Returns:

  • (Boolean)


13
14
15
# File 'lib/site-inspector/checks/headers.rb', line 13

def click_jacking_protection?
  !!click_jacking_protection
end

#content_security_policyObject



24
25
26
# File 'lib/site-inspector/checks/headers.rb', line 24

def content_security_policy
  headers['content-security-policy']
end

#content_security_policy?Boolean

Returns:

  • (Boolean)


9
10
11
# File 'lib/site-inspector/checks/headers.rb', line 9

def content_security_policy?
  !!content_security_policy
end

#serverObject



32
33
34
# File 'lib/site-inspector/checks/headers.rb', line 32

def server
  headers['server']
end

#strict_transport_securityObject

TODO: kill this



20
21
22
# File 'lib/site-inspector/checks/headers.rb', line 20

def strict_transport_security
  headers['strict-transport-security']
end

#strict_transport_security?Boolean

TODO: kill this

Returns:

  • (Boolean)


5
6
7
# File 'lib/site-inspector/checks/headers.rb', line 5

def strict_transport_security?
  !!strict_transport_security
end

#to_hObject



55
56
57
58
59
60
61
62
63
# File 'lib/site-inspector/checks/headers.rb', line 55

def to_h
  {
    strict_transport_security: strict_transport_security || false,
    content_security_policy:   content_security_policy || false,
    click_jacking_protection:  click_jacking_protection || false,
    server:                    server,
    xss_protection:            xss_protection || false
  }
end

#xss_protectionObject



36
37
38
# File 'lib/site-inspector/checks/headers.rb', line 36

def xss_protection
  headers['x-xss-protection']
end

#xss_protection?Boolean

more specific checks than presence of headers

Returns:

  • (Boolean)


41
42
43
# File 'lib/site-inspector/checks/headers.rb', line 41

def xss_protection?
  xss_protection == '1; mode=block'
end