module HTTPX::Plugins::SsrfFilter::InstanceMethods

  1. lib/httpx/plugins/ssrf_filter.rb

Methods

Public Instance

  1. send_requests

Public Instance methods

send_requests(*requests)
[show source]
    # File lib/httpx/plugins/ssrf_filter.rb
102 def send_requests(*requests)
103   responses = requests.map do |request|
104     next if @options.allowed_schemes.include?(request.uri.scheme)
105 
106     error = ServerSideRequestForgeryError.new("#{request.uri} URI scheme not allowed")
107     error.set_backtrace(caller)
108     response = ErrorResponse.new(request, error)
109     request.emit(:response, response)
110     response
111   end
112   allowed_requests = requests.select { |req| responses[requests.index(req)].nil? }
113   allowed_responses = super(*allowed_requests)
114   allowed_responses.each_with_index do |res, idx|
115     req = allowed_requests[idx]
116     responses[requests.index(req)] = res
117   end
118 
119   responses
120 end