Мне нужно определить, поступает ли запрос от localhost.Rails, как узнать, поступает ли запрос от localhost?
Я пытаюсь:
Для запроса http://localhost:3000
# MyController
request.local? # -> 0
request.host # -> localhost
request.ip # -> ::1
request.remote_ip # -> ::1
Для запроса http://127.0.0.1:3000
# MyController
request.local? # -> 0
request.host # -> 127.0.0.1
request.ip # -> 127.0.0.1
request.remote_ip # -> 127.0.0.1
Я хотел бы знать, если есть стандартный способ сделать это. Это выглядит как решение: ApplicationController.local_request?, но защищено и не работает должным образом, потому что request.local?
возвращает 0
для местных запросов.
Я также не могу доверять request.host
, потому что это может быть подделано /etc/hosts
трюками.