セキュリティと認証に関連する問題が発生しています。ユーザーを確認するソフトウェアを持っていますが、PHP リクエストとノードサーバーリクエストを送信しているクライアントが同じであることを確認する必要があります。ただし、ノードサーバーではクライアントの IP は IPv4 として表示されますが、PHP では IPv6 として表示されます。ノードサーバーでIPv6を抽出するか、PHPサーバーでIPv4を抽出するなど、同じ出力をどこかで取得する方法はありますか?ありがとう。
IPv4 と IPv6 が「異なる」場合でも、同じ IP を取得するか、同じクライアントであるかどうかを確認します
問題は、IPv6 と IPv4 がまったく結合されていないことです。 v4 アドレスから v6 アドレスを推測したり、その逆を推測したりすることはできません。
私の意見では、IP アドレスはスプーフィングされ、このような問題が発生する可能性があるため、IP アドレスによるユーザー認証は避けるべきです。とはいえ、「解決策」はいくつかあります。
PHP アプリケーションをホストしている Web サーバーで IPv6 を無効にします。これがどのタイプの Web サーバーであるかについては言及されていないため、「ipv6 apache を無効にする」などで Google で検索して、これを実現する方法を確認できるはずです。これにより、両方のサーバーの IPv4 アドレスが同じになることが保証されます。私は、IPv6 の採用を妨げるため、この解決策は個人的に好きではありません。
ノード サーバーで IPv6 を有効にします。クライアントは何らかの理由で IPv6 よりも IPv4 を好む可能性があり、両方のネットワーク サーバーで IPv6 を使用するという保証はないことに注意してください。