Dalam masyarakat moden, dengan perkembangan pesat Internet, semakin banyak aplikasi memerlukan pengguna untuk log masuk sebelum mereka boleh digunakan. Salah satu isu utama ialah cara menetapkan tempoh sah status log masuk. Jika status log masuk kekal sah untuk masa yang lama, risiko keselamatan akan meningkat dengan ketara jika status log masuk tamat tempoh terlalu cepat, ia akan menyebabkan kesulitan kepada pengguna. Artikel ini akan memperkenalkan cara untuk menetapkan tempoh sah status log masuk kepada 3 hari melalui PHP untuk mencapai keseimbangan antara keselamatan dan kemudahan.
Mari kita lihat dahulu mengapa kita perlu mengehadkan tempoh sah status log masuk. Biasanya, selepas pengguna log masuk ke tapak web atau aplikasi, ID sesi (ID Sesi) dijana pada pelayan dan disimpan dalam kuki pada klien. Setiap kali pengguna menghantar permintaan, ia akan disertakan dengan ID Sesi ini Melalui ID ini, pelayan boleh memastikan permintaan itu datang daripada pengguna yang log masuk. Jika tiada tarikh tamat tempoh ditetapkan, status log masuk akan kekal sah sehingga pengguna log keluar secara aktif atau kuki dikosongkan. Dengan cara ini, jika seseorang memperoleh Kuki pengguna melalui beberapa cara, mereka boleh menggunakan Kuki ini untuk memalsukan sesi dengan identiti yang sama seperti pengguna pada pelayan, dengan itu memintas mekanisme pengesahan sedia ada.
Untuk menyelesaikan masalah ini, kami perlu mengehadkan tempoh sah status log masuk melalui program. Dalam artikel ini, kami akan menggunakan mekanisme Sesi PHP untuk mencapai matlamat ini. Mekanisme Sesi PHP bermakna PHP secara automatik akan mencipta objek Sesi pada pelayan dan menjana ID Sesi unik untuk menjejak status sesi pengguna. Data sesi disimpan pada pelayan dan pengguna perlu menyediakan ID Sesi apabila mengakses untuk mendapatkan data yang disimpan sebelum ini. PHP secara automatik menyimpan ID Sesi dalam kuki pelanggan.
Untuk menetapkan tempoh sah status log masuk, kami boleh mengubah suai masa tamat Sesi dalam PHP. Secara lalai, masa tamat tempoh Sesi PHP ialah 24 minit, iaitu, jika pengguna tidak menghantar sebarang permintaan dalam masa 24 minit, Sesi akan dianggap tamat tempoh. Untuk memanjangkan masa tamat Sesi kepada 3 hari, kita perlu membuat perubahan dalam fail konfigurasi PHP php.ini.
Pertama, kita perlu mencari fail php.ini, yang biasanya terletak dalam laluan php.ini atau phpphp.ini dalam direktori pemasangan PHP. Selepas mencari fail, tambah kod berikut pada penghujung fail:
session.gc_maxlifetime = 259200 session.cookie_lifetime = 259200
Maksud kod adalah untuk menetapkan masa tamat Sesi kepada 259200 saat, iaitu 3 hari. Pada masa yang sama, masa tamat tempoh kuki juga ditetapkan kepada 3 hari, yang memastikan pengguna boleh kekal log masuk walaupun selepas menutup penyemak imbas dan membukanya semula. Selepas pengubahsuaian selesai, anda perlu memulakan semula pelayan web untuk konfigurasi berkuat kuasa.
Selain menetapkan masa tamat Sesi secara global dalam php.ini, kami juga boleh menetapkannya untuk Sesi tertentu dalam program. Berikut ialah contoh:
session_start(); $_SESSION['LAST_ACTIVE_TIME'] = time(); if (isset($_SESSION['LAST_ACTIVE_TIME']) && (time() - $_SESSION['LAST_ACTIVE_TIME'] > 259200)) { session_unset(); session_destroy(); }
Kod di atas bermakna setiap kali pengguna meminta, masa semasa disimpan dalam pembolehubah Sesi bernama LAST_ACTIVE_TIME. Jika Sesi tidak mempunyai sebarang permintaan selama lebih daripada 3 hari, Sesi akan dipadamkan, supaya status log masuk pengguna akan dikosongkan.
Akhir sekali, izinkan saya mengingatkan anda bahawa walaupun menetapkan tempoh sah status log masuk kepada 3 hari boleh meningkatkan keselamatan, anda juga harus berhati-hati agar tidak menyusahkan pengguna kerana masanya terlalu singkat. Oleh itu, kami perlu mempertimbangkan secara menyeluruh pengalaman dan keselamatan pengguna semasa menulis program, dan menggunakan strategi yang sesuai.
Atas ialah kandungan terperinci Bagaimana untuk menetapkan log masuk php tamat tempoh selepas 3 hari. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!