Как убедиться, что запрос действительно проксируется CloudFlare?

#http-headers #cloudflare

#http-заголовки #cloudflare

Вопрос:

В одном из проектов мы используем CloudFlare и его cf-connecting-ip заголовок для получения IP-адреса посетителя. Но я не уверен, что информации можно полностью доверять. Например, злоумышленник каким-то образом получил реальный IP-адрес нашего сервера и подключился к нему напрямую, поместив в заголовок поддельный IP-адрес cf-connecting-ip и притворившись, что это законный запрос, проксируемый CF.

Я проверил заголовки для запросов, проксируемых CF, и увидел cf-request-id заголовок. Но он уникален для каждого запроса, и я не вижу там никакого фиксированного безопасного ключа, который я мог бы использовать для проверки законности запроса.

Как убедиться, что запрос действительно был проксирован CF?

Комментарии:

1. Мне это тоже очень интересно.

Ответ №1:

Возможно, вы захотите использовать функцию извлечения аутентифицированного источника из Cloudflare:

Аутентифицированные исходные запросы позволяют веб-серверам origin строго проверять, что веб-запрос поступает из Cloudflare.
Мы используем аутентификацию по сертификату клиента TLS, функцию, поддерживаемую большинством веб-серверов, и предоставляем сертификат Cloudflare при установлении соединения между Cloudflare и исходным сервером.
Путем проверки этого сертификата в конфигурации исходного сервера доступ может быть ограничен подключениями Cloudflare.

Вам нужно будет загрузить сертификат клиента из Cloudflare и настроить свой веб-сервер для принудительной проверки сертификата.

На указанной странице есть инструкции по настройке сертификата клиента в Apache и Nginx.

Комментарии:

1. Большое вам спасибо! Это точно описывает, чего я хотел достичь.