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



53
54
55
# File 'lib/site-inspector/checks/headers.rb', line 53

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)



48
49
50
# File 'lib/site-inspector/checks/headers.rb', line 48

def all
  @all ||= response&.headers ? response.headers.transform_keys(&:downcase) : {}
end

#click_jacking_protectionObject



30
31
32
# File 'lib/site-inspector/checks/headers.rb', line 30

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

#click_jacking_protection?Boolean

Returns:

  • (Boolean)


15
16
17
# File 'lib/site-inspector/checks/headers.rb', line 15

def click_jacking_protection?
  !!click_jacking_protection
end

#content_security_policyObject



26
27
28
# File 'lib/site-inspector/checks/headers.rb', line 26

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

#content_security_policy?Boolean

Returns:

  • (Boolean)


11
12
13
# File 'lib/site-inspector/checks/headers.rb', line 11

def content_security_policy?
  !!content_security_policy
end

#serverObject



34
35
36
# File 'lib/site-inspector/checks/headers.rb', line 34

def server
  headers['server']
end

#strict_transport_securityObject

TODO: kill this



22
23
24
# File 'lib/site-inspector/checks/headers.rb', line 22

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

#strict_transport_security?Boolean

TODO: kill this

Returns:

  • (Boolean)


7
8
9
# File 'lib/site-inspector/checks/headers.rb', line 7

def strict_transport_security?
  !!strict_transport_security
end

#to_hObject



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

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



38
39
40
# File 'lib/site-inspector/checks/headers.rb', line 38

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

#xss_protection?Boolean

more specific checks than presence of headers

Returns:

  • (Boolean)


43
44
45
# File 'lib/site-inspector/checks/headers.rb', line 43

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