


Bagaimana untuk menguruskan sesi tanpa menggunakan kuki di 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.
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!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Stock Market GPT
Penyelidikan pelaburan dikuasakan AI untuk keputusan yang lebih bijak

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



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

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.

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

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.

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

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.

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