Jadual Kandungan
Gunakan ID sesi dalam URL
ID sesi lulus secara manual atas permintaan
Sisi pelayan sesi, mengenal pasti melalui Token
Rumah pembangunan bahagian belakang tutorial php Bagaimana untuk menguruskan sesi tanpa menggunakan kuki di PHP?

Bagaimana untuk menguruskan sesi tanpa menggunakan kuki di PHP?

Sep 14, 2025 am 12:59 AM
php

Ya, dengan mengkonfigurasi PHP untuk menulis semula ID sesi menggunakan URL (seperti membolehkan session.use_trans_sid), secara manual lulus session_id dalam permintaan, atau membina sistem sesi berasaskan token (seperti menggunakan token rawak pangkalan data), anda boleh menguruskan sesi dalam persekitaran yang bebas cookie, tetapi anda perlu mencegah pencegahan dan anda yang diperbetulkan. Adalah disyorkan untuk bekerjasama dengan HTTPS dan menyegarkan token selepas log masuk.

Bagaimana untuk menguruskan sesi tanpa menggunakan kuki di PHP?

Menguruskan sesi tanpa kuki dalam PHP adalah mungkin dengan lulus pengecam sesi melalui URL atau secara manual dalam permintaan. Walaupun PHP bergantung pada kuki secara lalai untuk menyimpan ID sesi (seperti phpsessId ), anda boleh mengkonfigurasi ia berfungsi tanpa mereka. Inilah caranya.

Gunakan ID sesi dalam URL

PHP boleh menyebarkan ID sesi melalui parameter URL dan bukannya cookies. Ini dipanggil Sesi ID URL Rewriting.

Dayakannya dengan menetapkan:
  • session.use_cookies = 0 -Melumpuhkan penyimpanan sesi berasaskan cookie.
  • session.use_only_cookies = 0 - Membolehkan ID sesi dalam URL.
  • session.use_trans_sid = 1 - Membolehkan penyebaran ID sesi telus dalam URL.

Contoh konfigurasi dalam php.ini atau melalui ini_set () :

INI_SET ('session.use_cookies', 0);
ini_set ('session.use_only_cookies', 0);
INI_SET ('session.use_trans_sid', 1);

Selepas membolehkan, hubungi session_start () , dan PHP secara automatik akan menambahkan ID sesi ke pautan relatif menggunakan SID (misalnya, page.php? PhpsessId = ABC123 ).

ID sesi lulus secara manual atas permintaan

Anda boleh menjana dan lulus ID sesi secara manual dalam bentuk, rentetan pertanyaan, atau tajuk.

Langkah:
  • Mulakan sesi dan dapatkan id: $ sid = session_id ();
  • Sertakan ID dalam pautan: teruskan
  • Pada halaman seterusnya, tetapkan ID Sesi sebelum memulakan: session_id ($ _ get ['sid']); session_start ();

Ini memberikan kawalan penuh tetapi memerlukan pengendalian yang teliti untuk mengelakkan penetapan sesi atau pendedahan.

Sisi pelayan sesi, mengenal pasti melalui Token

Gunakan mekanisme sesi tersuai di mana anda menghasilkan data sesi token dan stor yang unik dalam fail, pangkalan data, atau cache (seperti Redis), memetakan setiap token ke data pengguna.

Contoh:
  • Buat token: $ token = bin2hex (random_bytes (32));
  • Data sesi stor dalam pangkalan data yang dikemukakan oleh $ token .
  • Lulus token dalam URL atau data pos.
  • Dapatkan data menggunakan token pada setiap permintaan.

Ini mengelakkan sistem sesi terbina dalam PHP sepenuhnya dan memberikan lebih banyak fleksibiliti dan kawalan keselamatan.

Perlu diingat bahawa ID sesi lulus dalam URL mempunyai kelemahan: mereka boleh dibocorkan dalam tajuk perujuk, sejarah penyemak imbas, atau log. Sentiasa gunakan HTTPS dan pertimbangkan token regenerasi selepas log masuk.

Pada asasnya, anda boleh menguruskan sesi tanpa kuki dengan menulis semula URL, melewati ID secara manual, atau membina sistem berasaskan token tersuai. Hanya mengendalikan keselamatan dengan teliti.

Atas ialah kandungan terperinci Bagaimana untuk menguruskan sesi tanpa menggunakan kuki di PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Stock Market GPT

Stock Market GPT

Penyelidikan pelaburan dikuasakan AI untuk keputusan yang lebih bijak

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk mencegah serangan pemalsuan permintaan lintas tapak (CSRF) di PHP? Bagaimana untuk mencegah serangan pemalsuan permintaan lintas tapak (CSRF) di PHP? Sep 11, 2025 pm 12:45 PM

Themosteffectifwaytopreventcsrfattacksinphpisingantietti-csrftokens.generateaseCureTokenviabin2hex (random_bytes (32)), storeitin $ _Session, andincludeitasahiddeninfieldField.uponsubmission, verifyToToShession

Cara menambah tanda air ke imej dalam php Cara menambah tanda air ke imej dalam php Sep 15, 2025 am 03:26 AM

Gunakan perpustakaan GD PHP untuk menambah tanda air ke imej. Muat pertama imej asal dan tanda air (teks atau imej), kemudian gunakan ImageCopy () atau ImagettFtext () untuk bergabung, dan akhirnya menyimpan output. Sokongan JPEG, PNG dan format lain, perhatikan untuk mengendalikan laluan ketelusan dan fon, dan pastikan lanjutan GD diaktifkan.

Bagaimana cara memisahkan rentetan dengan pematuhan dalam php? Bagaimana cara memisahkan rentetan dengan pematuhan dalam php? Sep 11, 2025 pm 12:58 PM

Gunakan fungsi eksploit () untuk memecah rentetan oleh pemisah, dan sintaksinya adalah meneroka (pembatas, rentetan, nombor had), sebagai contoh, mengeksploitasi (",", "Apple, Banana") untuk mengembalikan array ['Apple', 'Banana']; Parameter had boleh mengawal bilangan elemen yang dikembalikan, seperti meneroka ("-", "satu-dua-tiga", 2) untuk mendapatkan ['satu', 'dua-tiga']; Sekiranya pemisah berbilang diperlukan, preg_split () digunakan dengan ungkapan biasa, seperti preg_split (), seperti preg_split

Bagaimana cara menukar objek ke array dalam php? Bagaimana cara menukar objek ke array dalam php? Sep 14, 2025 am 03:14 AM

Gunakan (array) untuk menukar objek mudah ke dalam tatasusunan. Jika mereka mengandungi sifat peribadi atau dilindungi, nama utama akan mempunyai aksara khas; Untuk objek bersarang, fungsi rekursif harus digunakan untuk melintasi penukaran untuk memastikan semua objek hierarki menjadi array bersekutu.

Bagaimana untuk mencegah serangan XSS (skrip lintas tapak) di PHP? Bagaimana untuk mencegah serangan XSS (skrip lintas tapak) di PHP? Sep 15, 2025 am 12:10 AM

PELANGGANXSSSByescapingPutWithHtmlSpecialChars () orjson_encode (), validationInputusingFilter_var (), ApplyCPHeaders, andUsingSecureFrameworksLikeLaravel.

Bagaimana untuk mendapatkan data pos dalam php? Bagaimana untuk mendapatkan data pos dalam php? Sep 16, 2025 am 01:47 AM

Gunakan array hyperglobal $ _POST untuk mendapatkan data pos, baca nilai melalui atribut nama borang, dan gunakan gelung foreach apabila memproses input array, supaya data perlu disahkan dan ditapis untuk mencegah XSS.

Bagaimana cara bekerja dengan pembolehubah persekitaran dalam php? Bagaimana cara bekerja dengan pembolehubah persekitaran dalam php? Sep 15, 2025 am 03:55 AM

UseTetenv () ToreadenVironmentVariablesandvlucas/phpdotenvtoload.envfilesindevelopment; StoreSensitivedalikikeySoutSideCode, NeverCommit.envtoversionControl, anduseActualenvironmentVariAbsinProductionforsEcurity.

See all articles