Rumah  >  Soal Jawab  >  teks badan

IPv6 pelanggan pada PHP tetapi IPv4 pada pelayan nod - memerlukannya supaya sama

<p>Saya mengalami isu berkaitan keselamatan dan pengesahan. Saya mempunyai perisian yang menyemak untuk mengesahkan pengguna, dan saya perlu memastikan ia adalah pelanggan yang sama yang menghantar permintaan PHP dan permintaan pelayan nod. Walau bagaimanapun, pada pelayan nod, IP pelanggan ditunjukkan sebagai IPv4, manakala pada PHP ia ditunjukkan sebagai IPv6. Adakah terdapat cara untuk mendapatkan output yang sama di suatu tempat, seperti mengekstrak IPv6 pada pelayan nod atau mengekstrak IPv4 pada pelayan PHP? Terima kasih. </p> <p>Dapatkan IP yang sama atau sahkan sama ada ia adalah klien yang sama walaupun IPv4 dan IPv6 adalah "berbeza"</p>
P粉239164234P粉239164234382 hari yang lalu530

membalas semua(1)saya akan balas

  • P粉860370921

    P粉8603709212023-09-05 15:18:18

    Masalahnya ialah IPv6 dan IPv4 tidak digandingkan dalam apa jua cara. Alamat v6 tidak boleh disimpulkan daripada alamat v4 atau sebaliknya.

    Pada pendapat saya yang sederhana, anda harus mengelak daripada mengesahkan pengguna melalui alamat IP kerana alamat IP dipalsukan dan amalan ini boleh membawa kepada isu seperti ini. Yang berkata, terdapat beberapa "penyelesaian".

    • Lumpuhkan IPv6 pada pelayan web yang mengehos aplikasi PHP anda. Memandangkan anda tidak menyebut jenis pelayan web ini, anda sepatutnya boleh google sesuatu seperti "lumpuhkan ipv6 apache" untuk mengetahui cara mencapainya. Ini harus memastikan bahawa alamat IPv4 pada kedua-dua pelayan adalah sama. Saya secara peribadi tidak menyukai penyelesaian ini kerana ia menghalang penggunaan IPv6.

    • Dayakan IPv6 pada pelayan nod. Ambil perhatian bahawa pelanggan mungkin masih memilih IPv4 daripada IPv6 atas sebarang sebab, dan tiada jaminan bahawa ia akan menggunakan IPv6 untuk kedua-dua pelayan rangkaian.

    • Anda boleh memproksi semua panggilan dari satu pelayan web ke pelayan web yang lain dan menghantar IP asal dalam pengepala "X-Forwarded-For". Ini akan memperkenalkan beberapa overhed, tetapi IP sumber akan menjadi lebih stabil.

    • Secara peribadi, saya akan mengelak daripada menggunakan alamat IP dan melaksanakan beberapa jenis token yang disimpan pada klien dan boleh disahkan pada kedua-dua pelayan melalui pangkalan data dikongsi jika boleh.

    balas
    0
  • Batalbalas