Bezpieczeństwo aplikacji webowych · Middle · Pytanie 12 z 75
Stan z renderowania po stronie serwera jest osadzany tak: <script>window.__STATE__ = ${JSON.stringify(state)}</script>. Na czym polega problem?
- ✓Poprawna odpowiedź: Tekst zawierający
</script>zamyka tag wcześniej i umożliwia XSS;<trzeba zakodować (np. jako\u003c) - 2
JSON.stringifyusuwa wszystkie teksty - 3Nie ma problemu, JSON jest zawsze bezpieczny w tagu script
Wyjaśnienie
Parser HTML widzi </script> zanim uruchomi się JavaScript. Frameworki i serializatory stworzone do tego kodują <, > i /.