PHP.nl

Cross Site Scripting (XSS)

Cross Site Scripting (XSS) is een kwetsbaarheid die optreedt wanneer een applicatie niet-vertrouwde gegevens in een webpagina opneemt zonder de juiste validatie of escaping. Deze fout stelt aanvallers in staat om kwaadaardige scripts in de browser van het slachtoffer uit te voeren.

In PHP is de meest voorkomende manier om je te verdedigen tegen XSS het escapen van output voordat deze naar de browser wordt weergegeven. Je kunt htmlspecialchars() gebruiken om speciale tekens om te zetten naar hun overeenkomstige HTML-entiteiten.

$userInput = '<script>alert("XSS!");</script>';
// Onveilig:
// echo $userInput;

// Veilig: echo htmlspecialchars($userInput, ENT_QUOTES, 'UTF-8');

Als je een moderne template-engine gebruikt, zoals Laravel's Blade of Symfony's Twig, wordt output standaard automatisch geëscaped, wat het risico op XSS-kwetsbaarheden aanzienlijk vermindert.