DOM XSS

If a user can control the executed code or HTML, a malicious user can send a crafted URL to a victim and control the executed code.

Vulnerable code examples

eval(document.querySelector('input[name="expression"]').value);
const firstName = document.querySelector('input[name="firstName"]').value;
document.querySelector('.wt-first-name').innerHTML = firstName;

ECMAScript Template String

ECMAScript template strings should not be used for HTML templating.

element.innerHTML = `<div>Hi, ${firstName}</div>`;

Where firstName might be controlled by a malicious user.

Except the application's code, every external source should be considered harmful.

User your frameworks escaping features.

Last updated