19
Heroku Cedar에서 클라이언트의 IP를 얻고 싶습니다. 첫 번째 시도 :Heroku에서 클라이언트의 실제 IP 주소 얻기
ENV['REMOTE_ADDR']
물론 모든 요청이 프록시를 통과하기 때문에 작동하지 않습니다. 그래서 대안은 사용했다 :
ENV['HTTP_X_FORWARDED_FOR']
을하지만이 그 것이다 매우 안전하지 않다?
하나의 값만 들어 있으면이 값을 사용합니다. 둘 이상의 값 (쉼표로 구분)이 들어 있으면 첫 번째 값을 취할 수 있습니다.
하지만 누군가이 값을 조작하면 어떻게 될까요? 내가 ENV['REMOTE_ADDR']
으로 할 수있는대로 ENV['HTTP_X_FORWARDED_FOR']
을 신뢰할 수 없습니다. 그리고 내가 사용할 수있는 신뢰할 수있는 프록시 목록도 없습니다.
하지만 클라이언트의 IP 주소를 안정적으로 얻으려면 어떤 방법으로도 이어야합니다. 너는 그걸 알고 있니?
their docs에서 Heroku는 X-Forwarded-For
이 "Heroku 라우터에 연결하는 클라이언트의 원래 IP 주소"라고 설명합니다.
Heroku가 원래의 원격 IP로 X-Forwarded-For
을 덮어 쓸 수있는 것처럼 들립니다. 이것은 스푸핑을 방지합니다. 누군가 이것을 확인할 수 있습니까?
죄송하지만 어떤 언어입니까? 그것이 파이썬이 아니면 파이썬에서 어떻게합니까? – Cubetastic