Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Mengesan Penggunaan HTTPS dengan Amanah Tanpa Bergantung pada $_SERVER['HTTPS']?

Bagaimanakah Saya Boleh Mengesan Penggunaan HTTPS dengan Amanah Tanpa Bergantung pada $_SERVER['HTTPS']?

Barbara Streisand
Lepaskan: 2024-12-20 04:20:12
asal
857 orang telah melayarinya

How Can I Reliably Detect HTTPS Usage Without Relying on $_SERVER['HTTPS']?

Kaedah Alternatif untuk Menentukan Penggunaan HTTPS Tanpa $_SERVER['HTTPS']

Pendekatan tradisional untuk mengesahkan sambungan HTTPS melibatkan menyemak nilai $ _SERVER['HTTPS']. Walau bagaimanapun, pada konfigurasi pelayan tertentu, pembolehubah ini mungkin tidak ditakrifkan, yang membawa kepada ralat.

Penyelesaian

Untuk menangani isu ini, fungsi berikut menyediakan alternatif yang boleh dipercayai untuk menentukan sambungan HTTPS:

function isSecure() {
  return
    (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off')
    || $_SERVER['SERVER_PORT'] == 443;
}
Salin selepas log masuk

Keserasian dan Penjelasan

  • Kod ini menampung konfigurasi IIS di mana $_SERVER['HTTPS'] ditetapkan kepada "dimatikan" untuk permintaan bukan HTTPS.
  • Selain itu, ia menyemak pelayan port (biasanya 443 untuk sambungan HTTPS) sebagai sandaran jika $_SERVER['HTTPS'] tidak ditentukan atau tidak sah.

Nota untuk Pengimbang Beban

Kod ini hanya menguji sambungan antara pelayan dan pengimbang beban jika pengimbang beban hadir. Untuk menguji sambungan antara klien dan pengimbang beban, pengepala HTTP_X_FORWARDED_PROTO harus digunakan, walaupun pendekatan ini lebih rumit.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesan Penggunaan HTTPS dengan Amanah Tanpa Bergantung pada $_SERVER['HTTPS']?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan