Class: CC::Service::SafeWebhook
- Inherits:
-
Object
- Object
- CC::Service::SafeWebhook
- Defined in:
- lib/cc/service/safe_webhook.rb
Constant Summary collapse
- InternalWebhookError =
Class.new(StandardError)
- PRIVATE_ADDRESS_SUBNETS =
[ IPAddr.new("10.0.0.0/8"), IPAddr.new("172.16.0.0/12"), IPAddr.new("192.168.0.0/16"), IPAddr.new("fd00::/8"), IPAddr.new("127.0.0.1"), IPAddr.new("0:0:0:0:0:0:0:1"), ].freeze
Class Method Summary collapse
Instance Method Summary collapse
- #ensure_safe! ⇒ Object
-
#initialize(url) ⇒ SafeWebhook
constructor
A new instance of SafeWebhook.
Constructor Details
#initialize(url) ⇒ SafeWebhook
Returns a new instance of SafeWebhook.
23 24 25 |
# File 'lib/cc/service/safe_webhook.rb', line 23 def initialize(url) @url = url end |
Class Method Details
.ensure_safe!(url) ⇒ Object
18 19 20 21 |
# File 'lib/cc/service/safe_webhook.rb', line 18 def self.ensure_safe!(url) instance = new(url) instance.ensure_safe! end |
Instance Method Details
#ensure_safe! ⇒ Object
27 28 29 30 31 32 33 |
# File 'lib/cc/service/safe_webhook.rb', line 27 def ensure_safe! uri = URI.parse(url) if !allow_internal_webhooks? && internal?(uri.host) raise InternalWebhookError, "#{url.inspect} maps to an internal address" end end |