class SiteInspector::Endpoint::Sniffer

Constants

OPEN_SOURCE_FRAMEWORKS

Public Instance Methods

advertising() click to toggle source
# File lib/site-inspector/checks/sniffer.rb, line 43
def advertising
  sniff :advertising
end
analytics() click to toggle source
# File lib/site-inspector/checks/sniffer.rb, line 35
def analytics
  sniff :analytics
end
framework() click to toggle source
# File lib/site-inspector/checks/sniffer.rb, line 20
def framework
  cms = sniff :cms
  return cms unless cms.nil?
  return :expression_engine if endpoint.cookies.any? { |c| c.keys.first =~ /^exp_/ }
  return :php if endpoint.cookies['PHPSESSID']
  return :coldfusion if endpoint.cookies['CFID'] && endpoint.cookies['CFTOKEN']
  return :cowboy if endpoint.headers.server.to_s.casecmp('cowboy').zero?

  nil
end
javascript() click to toggle source
# File lib/site-inspector/checks/sniffer.rb, line 39
def javascript
  sniff :javascript
end
open_source?() click to toggle source
# File lib/site-inspector/checks/sniffer.rb, line 31
def open_source?
  OPEN_SOURCE_FRAMEWORKS.include?(framework)
end
to_h() click to toggle source
# File lib/site-inspector/checks/sniffer.rb, line 47
def to_h
  {
    framework: framework,
    analytics: analytics,
    javascript: javascript,
    advertising: advertising
  }
end

Private Instance Methods

sniff(type) click to toggle source
# File lib/site-inspector/checks/sniffer.rb, line 58
def sniff(type)
  require 'sniffles'
  results = Sniffles.sniff(endpoint.content.body, type).select { |_name, meta| meta[:found] }
  results&.keys&.first
rescue StandardError
  nil
end