Secure Site

This site is protected from clickjacking attacks.

В этом примере JavaScript проверяет, не является ли текущее окно (window.self) самым верхним окном (window.top). Если это не так, он перенаправляет самое верхнее окно на URL-адрес текущего окна, фактически выходя за пределы iframe.

2. Улучшенная обработка кадров с помощью прослушивателей событий
Вы можете еще больше усовершенствовать технику удаления кадров, используя прослушиватели событий для постоянной проверки наличия фреймов на вашей странице.

Пример:

            Enhanced Frame Busting        

Secure Site

This site is protected from clickjacking attacks.

В этом примере функция предотвращенияClickjacking вызывается для событий DOMContentLoaded, загрузки и изменения размера, чтобы обеспечить непрерывную защиту.

Защита на стороне сервера

Хотя методы JavaScript полезны, реализация защиты на стороне сервера обеспечивает дополнительный уровень безопасности. Вот как настроить HTTP-заголовки в Apache и Nginx для предотвращения кликджекинга:

1. Заголовок X-Frame-Options
Заголовок X-Frame-Options позволяет указать, может ли ваш сайт быть встроен в iframe. Есть три варианта:

DENY: запрещает встраивание вашей страницы в любой домен.
SAMEORIGIN: разрешает встраивание только из того же источника.
ALLOW-FROM uri: разрешает встраивание из указанного URI.
Пример:

X-Frame-Options: DENY

Конфигурация Apache
Добавьте этот заголовок в конфигурацию вашего сервера:

# ApacheHeader always set X-Frame-Options \\\"DENY\\\"

Конфигурация Nginx
Добавьте этот заголовок в конфигурацию вашего сервера:

2. Предки кадра Content-Security-Policy (CSP)
CSP обеспечивает более гибкий подход с помощью директивы Frame-ancestors, которая указывает допустимых родителей, которые могут встраивать страницу с помощью iframe.

Пример:

Content-Security-Policy: frame-ancestors \\'self\\'

Конфигурация Apache
Добавьте этот заголовок в конфигурацию вашего сервера:

Пример:

# ApacheHeader always set Content-Security-Policy \\\"frame-ancestors \\'self\\'\\\"

Конфигурация Nginx
Добавьте этот заголовок в конфигурацию вашего сервера:

# Nginxadd_header Content-Security-Policy \\\"frame-ancestors \\'self\\'\\\";

Заключение

Кликджекинг представляет собой серьезную угрозу веб-безопасности, но, применяя методы блокировки кадров JavaScript и средства защиты на стороне сервера, такие как заголовки X-Frame-Options и Content-Security-Policy, вы можете эффективно защитить свои веб-приложения. Используйте приведенные примеры, чтобы повысить безопасность вашего сайта и обеспечить более безопасную работу для ваших пользователей.

","image":"http://www.luping.net/uploads/20240801/172248708366ab112bdc1ec.jpg","datePublished":"2024-08-01T12:38:03+08:00","dateModified":"2024-08-01T12:38:03+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}
«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Предотвращение атак кликджекинга в JavaScript

Предотвращение атак кликджекинга в JavaScript

Опубликовано 1 августа 2024 г.
Просматривать:882

Preventing Clickjacking Attacks in JavaScript

Кликджекинг, также известный как исправление пользовательского интерфейса, — это тип атаки, при которой злоумышленники обманом заставляют пользователей нажать на что-то, отличное от того, что они воспринимают, путем встраивания веб-страниц в iframe. Это может привести к несанкционированным действиям и поставить под угрозу безопасность пользователя. В этом блоге мы рассмотрим, как предотвратить атаки кликджекинга с помощью JavaScript и конфигураций серверов для Apache и Nginx, а также приведем удобные примеры.

Понимание кликджекинга

Кликджекинг предполагает размещение прозрачного или непрозрачного iframe поверх законного элемента веб-страницы, заставляя пользователей неосознанно выполнять такие действия, как изменение настроек или перевод средств.

Реальный пример

Рассмотрим сценарий, в котором злоумышленник встраивает скрытый iframe с банковского сайта в доверенную веб-страницу. Когда пользователь нажимает на, казалось бы, безобидную кнопку, он на самом деле может авторизовать банковскую транзакцию.

Вот пример уязвимой страницы:



    Clickjacking Example

Welcome to Our Site

Предотвращение кликджекинга с помощью JavaScript

Чтобы предотвратить атаки кликджекинга, вы можете использовать JavaScript, чтобы гарантировать, что ваш сайт не будет фреймирован. Вот пошаговое руководство по реализации этой защиты:

1. Разрушение фреймов JavaScript
Блокировка фреймов предполагает использование JavaScript для определения того, загружен ли ваш веб-сайт внутри iframe и выходит из него.

Пример:



    Frame Busting Example

Secure Site

This site is protected from clickjacking attacks.

В этом примере JavaScript проверяет, не является ли текущее окно (window.self) самым верхним окном (window.top). Если это не так, он перенаправляет самое верхнее окно на URL-адрес текущего окна, фактически выходя за пределы iframe.

2. Улучшенная обработка кадров с помощью прослушивателей событий
Вы можете еще больше усовершенствовать технику удаления кадров, используя прослушиватели событий для постоянной проверки наличия фреймов на вашей странице.

Пример:



    Enhanced Frame Busting

Secure Site

This site is protected from clickjacking attacks.

В этом примере функция предотвращенияClickjacking вызывается для событий DOMContentLoaded, загрузки и изменения размера, чтобы обеспечить непрерывную защиту.

Защита на стороне сервера

Хотя методы JavaScript полезны, реализация защиты на стороне сервера обеспечивает дополнительный уровень безопасности. Вот как настроить HTTP-заголовки в Apache и Nginx для предотвращения кликджекинга:

1. Заголовок X-Frame-Options
Заголовок X-Frame-Options позволяет указать, может ли ваш сайт быть встроен в iframe. Есть три варианта:

DENY: запрещает встраивание вашей страницы в любой домен.
SAMEORIGIN: разрешает встраивание только из того же источника.
ALLOW-FROM uri: разрешает встраивание из указанного URI.
Пример:

X-Frame-Options: DENY

Конфигурация Apache
Добавьте этот заголовок в конфигурацию вашего сервера:

# Apache
Header always set X-Frame-Options "DENY"

Конфигурация Nginx
Добавьте этот заголовок в конфигурацию вашего сервера:

2. Предки кадра Content-Security-Policy (CSP)
CSP обеспечивает более гибкий подход с помощью директивы Frame-ancestors, которая указывает допустимых родителей, которые могут встраивать страницу с помощью iframe.

Пример:

Content-Security-Policy: frame-ancestors 'self'

Конфигурация Apache
Добавьте этот заголовок в конфигурацию вашего сервера:

Пример:

# Apache
Header always set Content-Security-Policy "frame-ancestors 'self'"

Конфигурация Nginx
Добавьте этот заголовок в конфигурацию вашего сервера:

# Nginx
add_header Content-Security-Policy "frame-ancestors 'self'";

Заключение

Кликджекинг представляет собой серьезную угрозу веб-безопасности, но, применяя методы блокировки кадров JavaScript и средства защиты на стороне сервера, такие как заголовки X-Frame-Options и Content-Security-Policy, вы можете эффективно защитить свои веб-приложения. Используйте приведенные примеры, чтобы повысить безопасность вашего сайта и обеспечить более безопасную работу для ваших пользователей.

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/rigalpatel001/preventing-clickjacking-attacks-in-javascript-39pj?1. Если обнаружено какое-либо нарушение прав, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3