


Bagaimana untuk mereka bentuk struktur jadual MySQL yang selamat untuk melaksanakan fungsi pengesahan?
Bagaimana untuk mereka bentuk struktur jadual MySQL yang selamat untuk melaksanakan fungsi pengesahan?
Dalam era maklumat moden, pengesahan identiti adalah bahagian penting dalam kehidupan seharian kita. Sama ada dalam rangkaian atau dalam kehidupan sebenar, kami perlu memastikan bahawa hanya pengguna yang diberi kuasa boleh mengakses sumber tertentu atau melakukan operasi tertentu. Melaksanakan fungsi pengesahan dalam pangkalan data adalah langkah yang sangat penting untuk melindungi keselamatan data dengan berkesan. Artikel ini akan memperkenalkan cara mereka bentuk struktur jadual MySQL yang selamat untuk melaksanakan fungsi pengesahan dan menyediakan contoh kod yang sepadan.
Pertama, kita perlu mencipta jadual pengguna untuk menyimpan maklumat pengesahan pengguna. Jadual hendaklah mengandungi medan berikut:
- id: ID Pengguna, sebagai kunci utama, menggunakan jenis integer yang meningkat secara automatik.
- nama pengguna: Nama pengguna, menggunakan jenis rentetan yang unik.
- kata laluan: Kata laluan atas sebab keselamatan, kami harus menyulitkan dan menyimpan kata laluan. Kata laluan boleh disulitkan menggunakan fungsi cincang (seperti MD5, SHA-256, dll.) dan kata laluan yang disulitkan boleh disimpan dalam pangkalan data.
- e-mel: Alamat e-mel pengguna, menggunakan jenis rentetan yang unik.
- created_at: Tarikh dan masa pendaftaran pengguna, menggunakan jenis DATETIME.
Berikut ialah contoh kod MySQL untuk mencipta jadual pengguna:
CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(255) UNIQUE, password VARCHAR(255), email VARCHAR(255) UNIQUE, created_at DATETIME );
Seterusnya, kita perlu mencipta jadual sesi untuk mengurus maklumat sesi pengguna. Semasa proses pengesahan, kami membuat sesi untuk setiap pengguna dan menjana ID sesi. ID sesi ini akan digunakan untuk mengesahkan pengguna dan mengesahkan apabila pengguna mengakses sumber yang dilindungi. Jadual sesi hendaklah mengandungi medan berikut:
- id: ID Sesi, sebagai kunci utama, menggunakan jenis integer yang meningkat secara automatik.
- user_id: mengaitkan ID pengguna dalam jadual pengguna, menggunakan perhubungan kunci asing.
- session_id: ID Sesi, anda boleh menggunakan UUID atau jenis rentetan yang dijana secara rawak untuk memastikan keunikan.
- expired_at: Masa tamat tempoh sesi, menggunakan jenis DATETIME.
Berikut ialah contoh kod MySQL untuk mencipta jadual sesi:
CREATE TABLE sessions ( id INT AUTO_INCREMENT PRIMARY KEY, user_id INT, session_id VARCHAR(255), expired_at DATETIME, FOREIGN KEY (user_id) REFERENCES users(id) );
Setelah pengguna berjaya log masuk dan mengesahkan, kami akan menjana ID sesi dan menyimpannya ke dalam jadual sesi. Apabila pengguna mengakses sumber yang dilindungi, kami akan mengesahkan kesahihan dan tamat tempoh ID sesi. Dengan membandingkan ID pengguna dengan ID pengguna dalam jadual sesi, kami boleh memastikan bahawa pengguna mempunyai sesi yang sah dan mempunyai akses yang dibenarkan.
Sebagai tambahan kepada struktur jadual di atas, kami juga memerlukan kod yang sepadan untuk melaksanakan fungsi pengesahan. Apabila pengguna mendaftar, kita perlu memasukkan maklumat pengguna baharu ke dalam jadual pengguna. Apabila pengguna log masuk, kita perlu menanyakan jadual pengguna, mengesahkan ketepatan nama pengguna dan kata laluan, dan menjana ID sesi baharu dan menyimpannya dalam jadual sesi. Apabila pengguna mengakses sumber yang dilindungi, kami perlu mengesahkan kesahihan dan tamat tempoh ID sesi.
Berikut ialah contoh fungsi untuk mengesahkan identiti pengguna dan menjana ID sesi:
import hashlib import datetime import random import string def authenticate(username, password): # 查询用户表,验证用户名和密码的正确性 query = "SELECT * FROM users WHERE username = %s AND password = %s" cursor.execute(query, (username, hashlib.sha256(password.encode()).hexdigest())) user = cursor.fetchone() if user: # 生成新的会话ID session_id = ''.join(random.choices(string.ascii_letters + string.digits, k=32)) # 计算会话的过期时间(例如,30分钟后) expired_at = datetime.datetime.now() + datetime.timedelta(minutes=30) # 将会话ID存储到会话表中 query = "INSERT INTO sessions (user_id, session_id, expired_at) VALUES (%s, %s, %s)" cursor.execute(query, (user['id'], session_id, expired_at)) connection.commit() return session_id else: return None
Dengan struktur jadual dan contoh kod di atas, kami boleh mereka bentuk struktur jadual MySQL yang selamat untuk melaksanakan fungsi pengesahan. Dengan mereka bentuk struktur jadual dengan betul dan menggunakan penyulitan untuk menyimpan kata laluan, kami boleh melindungi identiti pengguna dan keselamatan data dengan berkesan. Pada masa yang sama, kami juga menyediakan contoh kod yang sepadan untuk menjadikan pelaksanaan fungsi pengesahan lebih mudah dan lebih dipercayai.
Atas ialah kandungan terperinci Bagaimana untuk mereka bentuk struktur jadual MySQL yang selamat untuk melaksanakan fungsi pengesahan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

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

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

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

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



PHP ialah bahasa skrip sebelah pelayan yang digunakan secara meluas yang digunakan untuk membangunkan aplikasi web. Ia telah berkembang menjadi beberapa versi, dan artikel ini akan membincangkan terutamanya perbandingan antara PHP5 dan PHP8, dengan tumpuan khusus pada peningkatan dalam prestasi dan keselamatan. Mula-mula mari kita lihat beberapa ciri PHP5. PHP5 dikeluarkan pada tahun 2004 dan memperkenalkan banyak fungsi dan ciri baharu, seperti pengaturcaraan berorientasikan objek (OOP), pengendalian pengecualian, ruang nama, dsb. Ciri-ciri ini menjadikan PHP5 lebih berkuasa dan fleksibel, membolehkan pembangun

Cabaran keselamatan dalam pembangunan Golang: Bagaimana untuk mengelak daripada dieksploitasi untuk penciptaan virus? Dengan aplikasi Golang yang luas dalam bidang pengaturcaraan, semakin ramai pembangun memilih untuk menggunakan Golang untuk membangunkan pelbagai jenis aplikasi. Walau bagaimanapun, seperti bahasa pengaturcaraan lain, terdapat cabaran keselamatan dalam pembangunan Golang. Khususnya, kuasa dan fleksibiliti Golang juga menjadikannya alat penciptaan virus yang berpotensi. Artikel ini akan membincangkan isu keselamatan dalam pembangunan Golang dan menyediakan beberapa kaedah untuk mengelakkan G

Pengurusan memori dalam Java melibatkan pengurusan memori automatik, menggunakan pengumpulan sampah dan pengiraan rujukan untuk memperuntukkan, menggunakan dan menuntut semula memori. Pengurusan memori yang berkesan adalah penting untuk keselamatan kerana ia menghalang limpahan penimbal, petunjuk liar dan kebocoran memori, dengan itu meningkatkan keselamatan program anda. Contohnya, dengan melepaskan objek yang tidak lagi diperlukan dengan betul, anda boleh mengelakkan kebocoran memori, dengan itu meningkatkan prestasi program dan mencegah ranap sistem.

Win11 datang dengan perisian anti-virus Secara umumnya, kesan anti-virus adalah sangat baik dan tidak perlu dipasang Namun, satu-satunya kelemahan ialah virus itu dinyahpasang terlebih dahulu dan bukannya mengingatkan anda terlebih dahulu sama ada anda memerlukannya. Jika anda menerimanya, anda tidak perlu memuat turun perisian anti-virus lain. Adakah win11 perlu memasang perisian anti-virus Jawapan: Tidak. Secara umumnya, win11 disertakan dengan perisian anti-virus dan tidak memerlukan pemasangan tambahan. Jika anda tidak menyukai cara perisian anti-virus yang disertakan dengan sistem win11 dikendalikan, anda boleh memasangnya semula. Bagaimana untuk mematikan perisian anti-virus yang disertakan dengan win11: 1. Pertama, kita masukkan tetapan dan klik "Privasi dan Keselamatan". 2. Kemudian klik "Pusat Keselamatan Tetingkap". 3. Kemudian pilih "Perlindungan virus dan ancaman". 4. Akhir sekali, anda boleh mematikannya

Pangkalan data Oracle ialah sistem pengurusan pangkalan data hubungan yang popular Banyak perusahaan dan organisasi memilih untuk menggunakan Oracle untuk menyimpan dan mengurus data penting mereka. Dalam pangkalan data Oracle, terdapat beberapa akaun lalai dan kata laluan yang dipratetap oleh sistem, seperti sys, sistem, dsb. Dalam pengurusan pangkalan data harian dan kerja operasi dan penyelenggaraan, pentadbir perlu memberi perhatian kepada keselamatan kata laluan akaun lalai ini, kerana akaun ini mempunyai kebenaran yang lebih tinggi dan boleh menyebabkan masalah keselamatan yang serius setelah ia dieksploitasi dengan niat jahat. Artikel ini akan membincangkan lalai Oracle

Apa itu EJB? EJB ialah spesifikasi Java Platform, Enterprise Edition (JavaEE) yang mentakrifkan satu set komponen untuk membina aplikasi Java kelas perusahaan sebelah pelayan. Komponen EJB merangkumi logik perniagaan dan menyediakan satu set perkhidmatan untuk mengendalikan urus niaga, konkurensi, keselamatan dan kebimbangan peringkat perusahaan yang lain. EJB Architecture Seni bina EJB merangkumi komponen utama berikut: Enterprise Bean: Ini adalah blok binaan asas komponen EJB, yang merangkumi logik perniagaan dan data berkaitan. EnterpriseBeans boleh menjadi stateless (juga dipanggil session beans) atau stateful (juga dipanggil entity beans). Konteks sesi: Konteks sesi menyediakan maklumat tentang interaksi klien semasa, seperti ID sesi dan klien

Pustaka kontena C++ menyediakan mekanisme berikut untuk memastikan keselamatan iterator: 1. Jaminan kebolehubahan kontena 2. Penyalin lelaran 3. Julat untuk gelung 5. Keselamatan pengecualian;

Melaksanakan keselamatan muat naik fail HTTP di Golang memerlukan langkah berikut: Sahkan jenis fail. Hadkan saiz fail. Kesan virus dan perisian hasad. Simpan fail dengan selamat.
