#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. Большое вам спасибо! Это точно описывает, чего я хотел достичь.