DOM-Based cross-site scripting (XSS)
Description
The web application generates dynamic web content from the client side without validating the origin of the potentially malicious data.
Impact
Generate web pages that could contain malicious scripts injected into untrusted data.
Recommendation
Perform server-side and client-side input data validation to avoid the most common script injection attacks.
Threat
Unauthorized attacker from the Internet.
Expected Remediation Time
⌚ 90 minutes.
Score
Default score using CVSS 3.1. It may change depending on the context of the vulnerability.
Base
- Attack vector: N
- Attack complexity: L
- Privileges required: N
- User interaction: R
- Scope: C
- Confidentiality: L
- Integrity: L
- Availability: N
Temporal
- Exploit code madurity: X
- Remediation level: X
- Report confidence: X
Result
- Vector string: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N/E:X/RL:X/RC:X
- Score:
- Base: 6.1
- Temporal: 6.1
- Severity:
- Base: Medium
- Temporal: Medium
Code Examples
Compliant code
The application performs server side validation of all user inputs
var search = document.getElementById('search').value;
var results = document.getElementById('results');
results.innerHTML = "You searched for:" + verifyData(search);
function verifyData(str){
return String(str).replace("ValidRegex");
}
//Server side validation should also be included in the code
Non compliant code
The application takes user input without validating it on the server side
var search = document.getElementById('search').value;
var results = document.getElementById('results');
results.innerHTML = "You searched for:" + search;