Sha256: 246a18ca3420ed3580f031dc7f3999cdb32c7357d33d445f6ecba343841d0cc7

Contents?: true

Size: 632 Bytes

Versions: 48

Compression:

Stored size: 632 Bytes

Contents

require 'uri'

# This class is for https://github.com/pact-foundation/pact_broker/issues/101
# curl -i "http://127.0.0.1:9292/<script>"

module Rack
  module PactBroker
    class InvalidUriProtection

      def initialize app
        @app = app
      end

      def call env
        if valid_uri? env
          @app.call(env)
        else
          [404, {}, []]
        end
      end

      def valid_uri? env
        begin
          parse(::Rack::Request.new(env).url)
          true
        rescue URI::InvalidURIError
          false
        end
      end

      def parse uri
        URI.parse(uri)
      end
    end
  end
end

Version data entries

48 entries across 48 versions & 1 rubygems

Version Path
pact_broker-2.26.0 lib/rack/pact_broker/invalid_uri_protection.rb
pact_broker-2.25.0 lib/rack/pact_broker/invalid_uri_protection.rb
pact_broker-2.24.0 lib/rack/pact_broker/invalid_uri_protection.rb
pact_broker-2.23.4 lib/rack/pact_broker/invalid_uri_protection.rb
pact_broker-2.23.3 lib/rack/pact_broker/invalid_uri_protection.rb
pact_broker-2.23.2 lib/rack/pact_broker/invalid_uri_protection.rb
pact_broker-2.23.1 lib/rack/pact_broker/invalid_uri_protection.rb
pact_broker-2.23.0 lib/rack/pact_broker/invalid_uri_protection.rb
pact_broker-2.22.0 lib/rack/pact_broker/invalid_uri_protection.rb
pact_broker-2.21.0 lib/rack/pact_broker/invalid_uri_protection.rb
pact_broker-2.20.0 lib/rack/pact_broker/invalid_uri_protection.rb
pact_broker-2.19.2 lib/rack/pact_broker/invalid_uri_protection.rb
pact_broker-2.19.1 lib/rack/pact_broker/invalid_uri_protection.rb
pact_broker-2.19.0 lib/rack/pact_broker/invalid_uri_protection.rb
pact_broker-2.18.0 lib/rack/pact_broker/invalid_uri_protection.rb
pact_broker-2.17.1 lib/rack/pact_broker/invalid_uri_protection.rb
pact_broker-2.17.0 lib/rack/pact_broker/invalid_uri_protection.rb
pact_broker-2.16.1 lib/rack/pact_broker/invalid_uri_protection.rb
pact_broker-2.16.0 lib/rack/pact_broker/invalid_uri_protection.rb
pact_broker-2.15.0 lib/rack/pact_broker/invalid_uri_protection.rb