Ограничить доступ к ipv6 - PullRequest
1 голос
/ 11 февраля 2020

У меня есть этот узел / express приложение, работающее на герою. Мне нужно сохранить IP-адреса посетителей.

Я установил доверенный прокси в приложении https://expressjs.com/en/guide/behind-proxies.html

app.set('trust proxy' , true);

И затем в моей конечной точке я получаю IP-адрес из объекта запроса как req.ip

app.post('/api/send-data', (req, res) => {

let data;

// find the user's ip address

const ip = req.ip;

console.log(request came from ${ip});
}

Он работает нормально, но проблема в req.ip, возвращает либо ipv6 или ipv4 и я хочу только сохранить ipv4 пользователя, как я могу это сделать?

Я прочитал узел / express Документация и настроить мое приложение для получения запросов от IPv4

app.listen(port, 0.0.0.0)

Но все же я вижу запросы от IPV6 адресов. Это потому, что запрос поступает к маршрутизатору heroku, а затем поступает в приложение, а маршрутизатор heroku передает IP-адрес пользователя в заголовке x-forwarded, поэтому приложение всегда считает его запросом от ipv4? Если да, то как это исправить?

Ответы [ 2 ]

1 голос
/ 11 февраля 2020

Ускоренный WAF аддон может помочь вам, так как он утверждает, что:

enter image description here

0 голосов
/ 12 февраля 2020

Heroku не поддерживает IPv6 - https://devcenter.heroku.com/articles/http-routing#not - поддерживается . Вы можете подготовить аддон Ускоренный WAF , поскольку он позволяет заблокировать любой адрес IP4 / IPv6 или диапазон от доступа к вашему сайту.

https://help.heroku.com/I8L6RW01/does-heroku-support-ipv6. https://elements.heroku.com/addons/expeditedwaf

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...