P粉8603709212023-09-05 15:18:18
문제는 IPv6와 IPv4가 어떤 방식으로도 결합되지 않는다는 것입니다. v4 주소에서 v6 주소를 추론하는 것은 불가능하며 그 반대의 경우도 마찬가지입니다.
저의 소견으로는 IP 주소는 스푸핑되므로 IP 주소로 사용자를 인증하는 것을 피해야 하며 이로 인해 이와 같은 문제가 발생할 수 있습니다. 즉, 몇 가지 "해결책"이 있습니다.
PHP 애플리케이션을 호스팅하는 웹 서버에서 IPv6를 비활성화합니다. 이것이 어떤 유형의 웹 서버인지 언급하지 않았으므로 이를 달성하는 방법을 찾으려면 "ipv6 apache 비활성화"와 같은 것을 Google에 검색할 수 있어야 합니다. 이렇게 하면 두 서버의 IPv4 주소가 동일한지 확인해야 합니다. 저는 개인적으로 이 솔루션이 IPv6 채택을 방해하기 때문에 마음에 들지 않습니다.
노드 서버에서 IPv6를 활성화하세요. 클라이언트는 어떤 이유로든 여전히 IPv6보다 IPv4를 선호할 수 있으며 두 네트워크 서버 모두에 IPv6을 사용한다는 보장은 없습니다.
한 웹 서버에서 다른 웹 서버로 모든 호출을 프록시하고 "X-Forwarded-For" 헤더에 원래 IP를 전달할 수 있습니다. 이로 인해 약간의 오버헤드가 발생하지만 소스 IP가 더 안정적이 됩니다.
개인적으로는 IP 주소 사용을 피하고 가능하면 클라이언트에 저장되고 공유 데이터베이스를 통해 두 서버 모두에서 확인할 수 있는 일종의 토큰을 구현하겠습니다.