Class: Hedra::Scorer

Inherits:
Object
  • Object
show all
Defined in:
lib/hedra/scorer.rb

Constant Summary collapse

HEADER_WEIGHTS =
{
  'content-security-policy' => 25,
  'strict-transport-security' => 25,
  'x-frame-options' => 15,
  'x-content-type-options' => 10,
  'referrer-policy' => 10,
  'permissions-policy' => 5,
  'cross-origin-opener-policy' => 5,
  'cross-origin-embedder-policy' => 3,
  'cross-origin-resource-policy' => 2
}.freeze
SEVERITY_PENALTIES =
{
  critical: 20,
  warning: 10,
  info: 5
}.freeze

Instance Method Summary collapse

Instance Method Details

#calculate(headers, findings) ⇒ Object



23
24
25
26
27
28
29
# File 'lib/hedra/scorer.rb', line 23

def calculate(headers, findings)
  base_score = calculate_base_score(headers)
  penalty = calculate_penalty(findings)

  score = [base_score - penalty, 0].max
  score.round
end