Проверяет понимание XSS-атак и методов защиты от них, что критично для безопасности веб-приложений.
XSS (Cross-Site Scripting) — это уязвимость веб-приложений, позволяющая злоумышленнику внедрить и выполнить произвольный JavaScript-код в контексте чужого сайта. Это происходит, когда приложение выводит пользовательские данные без должной обработки, и браузер интерпретирует их как код. Атака может привести к краже cookies, сессий, подмене контента или выполнению действий от имени пользователя.
Основной принцип — никогда не доверять пользовательскому вводу. Все данные, которые попадают в HTML, атрибуты, JavaScript или CSS, должны быть экранированы. Например, в React автоматически экранируются строки при рендеринге, но опасные функции, такие как dangerouslySetInnerHTML, следует избегать.
// Пример экранирования в JavaScript
function escapeHtml(str) {
const div = document.createElement('div');
div.textContent = str;
return div.innerHTML;
}
// Использование
const userInput = '<script>alert(1)</script>';
const safe = escapeHtml(userInput);
console.log(safe); // <script>alert(1)</script>Дополнительно рекомендуется настроить Content Security Policy (CSP), которая ограничивает источники выполнения скриптов. Например, заголовок Content-Security-Policy: script-src 'self' запрещает инлайн-скрипты и внешние источники. Также важно валидировать и санитизировать данные на сервере, используя библиотеки типа DOMPurify для HTML.
XSS — одна из самых распространенных угроз, поэтому защита должна быть многоуровневой: экранирование вывода, CSP, валидация ввода и регулярные аудиты кода. Применяйте эти практики в любом веб-приложении, особенно там, где пользователи могут вводить данные, чтобы предотвратить компрометацию данных и доверия пользователей.
Уровень
Рейтинг:
5
Сложность:
4
Навыки
JavaScript
HTML
Ключевые слова
Подпишись на Golang Developer в телеграм