HTTP communication with user-controlled destination detected.
- Rule ID: ruby_lang_http_url_using_user_input
- Languages: ruby
- Source: http_url_using_user_input.yml
Description
Applications should not connect to locations formed from user input. This rule checks for URLs containing user-supplied data.
Remediations
❌ Avoid using user input in HTTP URLs:
Faraday.get("https://#{params[:host]}')
✅ Use user input indirectly to form a URL:
host =
case params[:host]
when "option1"
"api1.com"
when "option2"
"api2.com"
end
Faraday.get("https://#{host}')