Module: FiberAudit::Runtime::Probes::HTTP

Defined in:
lib/fiber_audit/runtime/probes/http.rb

Defined Under Namespace

Modules: NetHTTPClassHook, NetHTTPClassRequestHook, NetHTTPInstanceHook, OpenURIHook, URIHook

Constant Summary collapse

HTTP_SCHEME =
/\Ahttps?:/i

Class Method Summary collapse

Class Method Details

.http_target?(value) ⇒ Boolean

Returns:

  • (Boolean)


69
70
71
72
73
74
75
76
# File 'lib/fiber_audit/runtime/probes/http.rb', line 69

def http_target?(value)
  return value.match?(HTTP_SCHEME) if value.instance_of?(String) && value.valid_encoding?
  return false unless defined?(URI::HTTP)

  value.instance_of?(URI::HTTP) || (defined?(URI::HTTPS) && value.instance_of?(URI::HTTPS))
rescue StandardError
  false
end

.install!(registry) ⇒ Object



57
58
59
60
61
62
63
64
65
66
67
# File 'lib/fiber_audit/runtime/probes/http.rb', line 57

def install!(registry)
  if defined?(Net::HTTP)
    registry.prepend_once(Net::HTTP.singleton_class, NetHTTPClassHook)
    registry.prepend_once(Net::HTTP, NetHTTPInstanceHook)
    registry.prepend_once(Net::HTTP.singleton_class, NetHTTPClassRequestHook) if Net::HTTP.respond_to?(:request)
  end
  registry.prepend_once(URI.singleton_class, URIHook) if defined?(URI) && URI.respond_to?(:open)
  return unless defined?(OpenURI) && OpenURI.respond_to?(:open_uri)

  registry.prepend_once(OpenURI.singleton_class, OpenURIHook)
end