Вопрос проверяет знание экранирования символов для предотвращения XSS-атак в веб-приложениях.
Для защиты от XSS-атак необходимо экранировать символы, которые могут интерпретироваться браузером как HTML-теги или атрибуты. Основные символы: < (меньше), > (больше), & (амперсанд), " (двойная кавычка), ' (одинарная кавычка). Они преобразуются в HTML-сущности, чтобы браузер отображал их как текст, а не как код.
Например, пользователь вводит строку <script>alert('XSS')</script>. Без экранирования браузер выполнит скрипт. С экранированием строка станет <script>alert('XSS')</script> и отобразится как текст.
// Пример на JavaScript
function escapeHTML(str) {
return str
.replace(/&/g, '&')
.replace(/</g, '<')
.replace(/>/g, '>')
.replace(/"/g, '"')
.replace(/'/g, ''');
}
const userInput = "<script>alert('XSS')</script>";
const safeOutput = escapeHTML(userInput);
document.getElementById('output').innerText = safeOutput;Экранирование используется при вставке пользовательских данных в HTML-контекст (например, в innerHTML, атрибуты, URL). Важно помнить, что контекст может быть разным: HTML-теги, атрибуты, JavaScript, CSS. Для каждого контекста требуется своя стратегия экранирования. Например, для атрибутов нужно экранировать кавычки, а для JavaScript — использовать JSON.stringify.
Вывод: экранирование символов — базовая защита от XSS, но не единственная. Рекомендуется использовать готовые библиотеки (например, DOMPurify) и Content Security Policy (CSP) для комплексной безопасности.
Уровень
Рейтинг:
5
Сложность:
3
Навыки
JavaScript
HTML
Ключевые слова
Подпишись на React Developer в телеграм
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию