По мере увеличения содержания веб-сайтов и приложений становится критически важным предотвратить незаконное присвоение ваших ресурсов неавторизованными внешними веб-сайтами или приложениями. Nginx — это мощный инструмент, который предоставляет несколько методов защиты от хотлинков. В этом блоге будет представлено несколько различных методов защиты от хотлинков Nginx, которые помогут вам защитить ваши ресурсы от атак хотлинков.
valid_referers
инструкцияNginxизvalid_referers
инструкция允许您定义允许из引用来源,Тем самым ограничивая доступ к ресурсам. Вот пример конфигурации:
server {
listen 80;
server_name yourwebsite.com;
location /images {
valid_referers none blocked yourwebsite.com;
if ($invalid_referer) {
return 403;
}
# Конфигурация обработки запросов изображений
}
# Другие сайты Конфигурация...
}
В этой конфигурации,мы устанавливаемvalid_referers
,Указаны разрешенные источники цитирования. Если запрошенный источник цитирования отсутствует в списке разрешенных,Nginx вернет ошибку 403 Forbidden.
geo
модульNginxизgeo
модуль允许您基于клиентизIPАдрес для контроля доступа。Вот пример Конфигурация:
http {
geo $allowed_ips {
default 0; # По умолчанию все запросы запрещены
192.168.1.0/24 1; # Разрешенные диапазоны IP-адресов
10.0.0.0/8 1; # Более Разрешенные диапазоны IP-адресов
# Можно добавить дополнительные условия.
}
}
server {
listen 80;
server_name yourwebsite.com;
location /protected {
if ($allowed_ips = 0) {
return 403;
}
# Конфигурация работы с защищенными ресурсами
}
# Другие сайты Конфигурация...
}
использоватьgeo
модуль,мы можем Конфигурацияодин$allowed_ips
переменная,Используется для хранения разрешенных IP-адресов или других условий. Затем,существоватьlocation
блокировать,我们использоватьif
инструкция检查这个переменная。еслиIP地址不существовать允许из列表中,Nginx вернет ошибку 403.
Создайте случайный токен или ключ и потребуйте от клиента включать действительный токен или ключ в каждый запрос. Сервер проверяет эти токены или ключи, чтобы подтвердить легитимность запроса. Этот метод обеспечивает большую безопасность, поскольку токен или ключ нелегко подделать.
Используйте механизмы аутентификации HTTP (например, базовую аутентификацию), чтобы потребовать от клиента предоставления имени пользователя и пароля для проверки доступа к ресурсам.
Использование сети доставки контента (CDN) может помочь предотвратить хотлинкинг, поскольку CDN обычно предоставляют некоторые функции защиты от хотлинкинга, такие как настройка белых и черных списков.
Шифруйте ресурсы и используйте цифровые подписи для проверки их целостности и легитимности. Это обеспечивает высочайший уровень безопасности, но требует более сложной реализации.
Существуют специализированные инструменты и службы для защиты от хотлинков, которые предлагают различные варианты защиты от хотлинков и упрощают настройку.
Ниже приведены различные методы защиты от хотлинков Nginx.
метод | преимущество | недостаток |
---|---|---|
Используйте директиву valid_referers | - Простота в использовании – не требуются дополнительные вычислительные ресурсы | - Зависит от поля Referer в запросе, недостаточно безопасно. - Невозможно предоставить более сложные параметры контроля доступа. |
Использование геомодуля | - Обеспечивает контроль доступа на основе IP-адреса клиента, обеспечивая более высокий уровень безопасности. - Могут быть установлены сложные условия. | - Использование инструкции if может потребовать дополнительных вычислительных ресурсов. - Конфигурация относительно сложна, особенно для большого количества IP-адресов. |
Использовать токен или ключ | - Обеспечивает повышенную безопасность и его нелегко подделать. - Гибкий контроль того, какие клиенты имеют доступ к ресурсам. | - Для создания и проверки токена или ключа требуется дополнительная логика. - Клиенту необходимо включать токен или ключ в каждый запрос. |
HTTP-аутентификация | - Обеспечивает определенный уровень безопасности, требуя от клиента предоставления имени пользователя и пароля. | - Клиенту необходимо предоставить имя пользователя и пароль, что может быть неудобно. - Необходимо управлять учетными данными пользователя, что может увеличить затраты на управление. |
Используйте CDN | - CDN обычно обеспечивает функцию защиты от кражи и легко настраивается. - Возможности глобального распространения. | - Требуется дополнительная стоимость CDN — Не подходит для использования без использования. Ситуация с CDN |
Шифрование и цифровые подписи | - Обеспечивает высочайший уровень безопасности, ресурсы полностью зашифрованы и подписаны. | - Сложность в настройке и обслуживании. - Может увеличиться нагрузка на сервер. |
Инструменты защиты от хотлинков | - Обеспечивает различные варианты защиты от хотлинков и прост в использовании. - Может иметь удобный интерфейс. | - 部分Инструменты защиты от хотлинков могут потребовать оплату - Может включать использование сторонних сервисов |
Отказ от ответственности: эта работа распространяется под лицензией Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)[1]. При использовании указывайте источник. Автор: мэнбин[2] блог: мэнбин[3] Гитхаб: mengbin92[4] cnblogs: Непреднамеренно полюбила воду[5]
[1]
С указанием авторства-Некоммерческая-ShareAlike 4.0 интернациональность (CC BY-NC-SA 4.0): https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh
[2]
mengbin: mengbin1992@outlook.com
[3]
mengbin: https://mengbin.top
[4]
mengbin92: https://mengbin92.github.io/
[5]
Влюбляюсь в воду нечаянно: https://www.cnblogs.com/lianshuiwuyi/