Server Side Request Forgery High

User-controlled input is being used to construct URLs, which may lead to unauthorized requests to internal resources.

Detector ID
ruby/server-side-request-forgery@v1.0
Category
Common Weakness Enumeration (CWE) external icon

Noncompliant example

1require 'net/http'
2
3def server_side_request_forgery_noncompliant
4  url = params[:url]
5  # Noncompliant: url is passing through `HTTP.get()`.
6  Net::HTTP.get(url, "/index.html")
7end

Compliant example

1def server_side_request_forgery_compliant
2  url = params[:url]
3  # Compliant: url is not passing through `HTTP.get()`.
4  Net::HTTP.get("example.com", "/index.html")
5end