Всем привет! Хочу рассказать о JavaScript-инъекциях и как защититься от них при…
👁 546↗ 3💬 6
Для начала, что это такое:
JavaScript-инъекции – это атака, при которой “мамкин хакер” внедряет <script> код на ваш веб-сайт.
В этом посте расскажу про один из видов JavaScript-иньекций - Cross-Site Scripting (XSS) (дополнение из комментариев)
Как это работает?
Обычно такое происходит, когда на сайте пользователи могут вводить данные, которые затем отображаются или используются на сайте. Например, если ваш сайт отображает комментарий к постам и затем выводит эти данные без обработки, тогда “мамкин хакер” может вставить JavaScript-код. Этот код затем выполняется в браузере каждого, кто просматривает эту страницу, а это может быть отправка cookie или данных localStorage куда-нибудь на сервер хакера.
Как предотвратить JavaScript-инъекции?
Есть несколько способов предотвратить JavaScript-инъекции:
1. Экранирование данных: Это означает, что все входные данные, которые могут быть использованы в HTML или JavaScript, должны быть преобразованы в безопасную форму. Это обычно означает замену опасных символов, таких как
<, >, &, " и ', на их безопасные HTML-эквиваленты.
2. Белые списки вместо черных: Приложения, которые используют "черные списки" для блокировки определенных вводов, могут быть уязвимы для вновь обнаруженных или сложно идентифицируемых атак. Вместо этого использование "белых списков" для разрешения только известно безопасных вводов может быть более эффективным.
3. Политики содержимого: Современные браузеры поддерживают "Политики содержимого", которые позволяют контролировать, какой код может выполняться на странице. Например, политика может запретить выполнение любого JavaScript-кода, который не был явно загружен из доверенного источника.
4. Проверка пользовательских входных данных: Проверка входных данных может быть полезной, чтобы убедиться, что они соответствуют ожиданиям, прежде чем они будут использованы в коде. Это может предотвратить вставку злонамеренного кода.
5. Ограничение прав и привилегий: Каждый процесс или пользователь в вашем приложении должен иметь только те привилегии, которые ему действительно необходимы для выполнения его функций. Это означает, что даже если злоумышленник может внедрить код, он может быть ограничен в том, что он может сделать.
Вывода не будет, просто помните, что защита ваших пользователей и их данных - это одна из ваших основных обязанностей как разработчика.7211
Комментарии · 6
- @meafrankЭто обычно называется XSS инъекция, и возможно лучше переименовать заголовок, дабы не путать людей
- анонимЯ вот как раз и не хотел так писать, подумав, что JS понятнее будет.
- @meafrankДа просто JS инъекции термин не такой распространенный, а вот названию xss даже посвятили форум xss.is)
- анонимНу не совсем так. В моем представлении JS иньекции это тоже термин имеется но более общий, относительно XSS. Хотя вот смотрю пост, описал я именно XSS прицип 😂
- анонимВообще можно наверное написать пост по каждой из топ 10 OWASP. Наверное будет инетересно 🙂
- @meafrankну вообще да, было бы славно)