Я хочу кое-что прояснить относительно JavaScript назначения переменных и уязвимостей XSS. Если назначение происходит на стороне клиента, а не на стороне сервера, открыто ли оно для уязвимостей XSS? Например, что-то вроде этого:
//www.test.com/index.html?q=malcious-javascript;
<script>
var x = window.location.search.substr(1);
</script>
Является ли назначение ненадежных данных проблемой безопасности на этом этапе? Отмечая, что это не назначение на стороне сервера.
Насколько я понимаю, на данный момент это не будет проблемой безопасности, даже если она находится в контексте JavaScript, который считается небезопасным. Так как это просто строка, она не может быть взломана в отличие от динамических c JavaScript, генерируемых на стороне сервера, которые отправляются в браузер и отображаются как HTML. Пока данные не отображаются в небезопасном контексте без надлежащих стратегий экранирования, например, таких как входное значение HTML, будет безопасно назначать ненадежные данные в переменную JavaScript на стороне клиента.
Если мое понимание выше неверно и это уязвимость XSS, кто-то может предоставить ответ с фактическим вектором атаки XSS, чтобы я мог сам лучше понять, как он выполняется.