Skip to content

Cross-site Scripting (XSS) in link_to

Description

The code includes user input in `link_to` without proper sanitization, allowing an attacker to inject malicious JavaScript code. In Rails, the body of `link_to` is not escaped, making it vulnerable to XSS attacks.

Examples

Insecure Code

ruby
link_to params[:user_link_text], some_path

Secure Code

ruby
user_input = params[:user_link_text]
safe_link_text = sanitize(user_input)
<%= link_to safe_link_text, some_safe_path %>

Remediation

Sanitize user input used within `link_to` method calls using the `sanitize` helper method or other Rails sanitization helpers.

Rule Details

FieldValue
IDCODE-0554
CategoryInjection
SeverityMEDIUM
CWECWE-79
ConfidenceHIGH
ImpactHIGH
LikelihoodMEDIUM
ExploitabilityEASY
Tagsxss, cross-site scripting
OWASPA7:2017-Cross-Site Scripting (XSS), A03:2021-Injection

References