Какие знаешь методы защиты от веб-уязвимостей

Ответ

Вот основные методы защиты:

  1. XSS - экранирование пользовательского ввода, Content Security Policy (CSP), HttpOnly куки:
// Экранирование
function escapeHtml(str) {
  return str.replace(/&/g, "&")
            .replace(/</g, "&lt;")
            .replace(/>/g, "&gt;");
}
  1. CSRF - токены в формах, SameSite атрибут для кук:
<input type="hidden" name="_csrf" value="токен_с_сервера">
  1. SQL-инъекции - параметризованные запросы, ORM

  2. CORS - настройка заголовков на сервере:

Access-Control-Allow-Origin: https://trusted.com
  1. Clickjacking - заголовок X-Frame-Options: DENY

  2. Хранение данных - хеширование паролей (bcrypt), шифрование

  3. HTTPS - обязательное использование для передачи данных

  4. Защита API - лимиты запросов, JWT аутентификация

  5. Заголовки безопасности:

X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block

Ответ 18+ 🔞

А, слушай, смотри, тут про безопасность веб-приложений, ну, это такая тема, где можно на ровном месте пиздец натворить, если не знать, куда смотреть. Вот, блядь, основные способы не обосраться.

1. XSS (Эти ваши скрипты в тексте) Ну, это когда пользователь вводит не «Привет», а <script>украсть_куки()</script>. Чтобы не было такого пиздеца, надо всё экранировать, как будто ты санитар в чумном бараке. И куки ставить с флагом HttpOnly, чтобы к ним с фронтенда доступа не было, и Content Security Policy (CSP) настроить, чтобы браузер знал, откуда можно скрипты грузить, а откуда — нахуй.

// Экранирование
function escapeHtml(str) {
  return str.replace(/&/g, "&amp;")
            .replace(/</g, "&lt;")
            .replace(/>/g, "&gt;");
}

2. CSRF (Поддельные запросы) Представь: ты залогинен на каком-то сайте, а тебе на почту приходит письмо «Посмотри котиков!», ты кликаешь, а там невидимая форма, которая от твоего имени деньги переводит. Пиздец, да? Чтобы такого не было, в каждую форму вставляй уникальный токен с сервера. И кукам ставь атрибут SameSite, чтобы их не слали с левых сайтов.

<input type="hidden" name="_csrf" value="токен_с_сервера">

3. SQL-инъекции Это классика, блядь. Никогда, слышишь, НИКОГДА не вставляй пользовательский ввод прямо в запрос. «SELECT * FROM users WHERE name = '» + userName + «'» — это прямой билет в админку. Используй параметризованные запросы или ORM, которые сами всё заэкранируют. Просто запомни: конкатенация строк для SQL — это ебаный детский сад.

4. CORS (Межсайтовые запросы) Тут, чтобы не было, что любой левый сайт может к твоему API стучаться, настраивай заголовки на сервере. Разрешай только с доверенных доменов.

Access-Control-Allow-Origin: https://trusted.com

5. Clickjacking (Кликджекинг) Это когда твой интерфейс встраивают в прозрачный iframe на левом сайте и нажимают на кнопки вместо тебя. Защита — проще некуда: ставь заголовок X-Frame-Options: DENY или SAMEORIGIN.

6. Хранение данных Пароли, блядь, никогда в открытом виде! Только хеширование, желательно с солью, алгоритмами типа bcrypt. Конфиденциальные данные — шифруй. Это же очевидно, как дважды два, но нет же, находятся умники, которые хранят всё в plain text.

7. HTTPS В 2024 году говорить об этом — как о необходимости мыть руки после туалета. Но всё равно находятся те, кто запускает продакшен по HTTP. Это просто пиздец. Все данные летят как есть, любой в сети может их перехватить. Включи и забудь.

8. Защита API Не давай всем подряд стучаться к твоим эндпоинтам. Лимиты на запросы (rate limiting), нормальная аутентификация (например, через JWT), проверка прав доступа. Иначе на тебя налетят боты, как пидары на халяву, и положит сервер.

9. Заголовки безопасности Вот эти штуки, которые многие забывают, а они, блядь, очень полезные. Просто добавь их в ответы сервера, и уже станет безопаснее.

X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block

Вот, в общем-то, и всё. Не так страшно, если знать, где подстелить соломки. Главное — не быть распиздяем и думать головой, а не жопой.