В Nginx мы рассмотрим шаги, которые необходимо выполнить, чтобы отключить ETag.

Что такое ETag?

Итак, для чего нужен ETag? Ну, это позволяет кэшам быть более эффективными и экономить пропускную способность, поскольку веб-серверу не нужно повторно отправлять полный ответ, если содержимое не было изменено.

Однако хакеры могут использовать обработку ETag для саботажа веб-сервера. Вот почему иногда необходимо отключить его.

Да, неправильное использование ETag может представлять собой риск и проблему безопасности. Короче говоря, многие вредоносные приложения используют механизм ETag в обратном порядке, т.е. вместо того, чтобы служить тегом объекта для ресурса, предоставляемого веб-приложением, они используют его в качестве тега отслеживания пользователей.

Как отключить ETag в Nginx

Чтобы выполнить этот процесс, вы можете сделать это как глобально, так и конкретно для каждого из ServerBlocks.

Если вы хотите сделать это глобально, вам придется отредактировать файл конфигурации Nginx. Помните, что вам нужны привилегии root.

1
$ sudo nano /etc/nginx/nginx.conf

В разделе http просто напишите директиву etag и установите для нее стандартное значение off. Чтобы отключить его, сделайте это.

1
2
3
4
5
http {
   ...
   etag off;
   ...
}

Чтобы применить изменения, просто сохраните изменения, а затем перезапустите службу.

1
$ sudo systemctl restart nginx

Как видите, вам нужно только добавить эту команду в http, и она будет волшебным образом отключена для каждого веб-сайта, на котором работает Nginx.

Отключить ETag в Nginx (для определенного сайта)

Если вы хотите отключить ETag только на определенном сайте, вам нужно изменить не глобальный файл конфигурации, а файл конфигурации ServerBlocks.

Пример:

1
$ sudo nano /etc/nginx/sites-enabled/myWebsite.conf

Теперь директива ETag вам придется изменить значение, но внутри server, как это

1
2
3
4
5
6
server {
   listen 80;
   server_name myWebsite.com
   etag off;
   ...
}

Сохраните изменения и снова, чтобы применить их, вы можете перезапустить Nginx.

1
$ sudo systemctl restart nginx

Вы сразу заметите изменения. Если вы хотите отменить изменения, просто измените off на on.

Заключение

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

Я надеюсь, вам понравился этот пост, и вы можете поделиться этим ресурсом.