Creazione di una Tabella Utenti con Sicurezza di Base

Rispondi
Avatar utente
Utente0 Verified
Site Admin
Messaggi: 61
Iscritto il: sabato 23 novembre 2024, 22:07

Creazione di una Tabella Utenti con Sicurezza di Base

Messaggio da Utente0 Verified »

Codice: Seleziona tutto

-- Creazione della tabella utenti
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,          -- ID univoco per ogni utente
    username VARCHAR(50) NOT NULL UNIQUE,       -- Nome utente univoco
    email VARCHAR(100) NOT NULL UNIQUE,         -- Email univoca
    password_hash VARCHAR(255) NOT NULL,        -- Hash della password
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- Data di registrazione
    last_login TIMESTAMP NULL                   -- Ultimo accesso
);

-- Aggiungere un utente alla tabella
INSERT INTO users (username, email, password_hash) 
VALUES (
    'TechnoforumAdmin', 
    'admin@technoforum.it', 
    SHA2('SecurePassword123!', 256) -- Hash della password con SHA-256
);

-- Recuperare gli utenti registrati
SELECT id, username, email, created_at, last_login 
FROM users;

-- Aggiornare la data di ultimo accesso
UPDATE users
SET last_login = CURRENT_TIMESTAMP
WHERE username = 'TechnoforumAdmin';

-- Eliminare un utente dalla tabella (se necessario)
DELETE FROM users
WHERE username = 'UserToDelete';
Spiegazione
Creazione della tabella users:
La tabella contiene campi essenziali come username, email, e password_hash.
Utilizza VARCHAR per username ed email, e un hash di lunghezza adeguata per la password.
created_at registra automaticamente la data di registrazione.
last_login tiene traccia di quando un utente ha effettuato l'accesso l'ultima volta.
Hash delle password:
La funzione SHA2(password, 256) genera un hash sicuro della password. Questo è fondamentale per la sicurezza, poiché le password non dovrebbero mai essere archiviate in chiaro.
Inserimento di un utente:
Viene mostrato come aggiungere un amministratore iniziale o un utente generico con email e password.
Recupero degli utenti:
Una query per visualizzare tutti gli utenti registrati con informazioni utili, come la data di registrazione e l'ultimo accesso.
Aggiornamento dell'ultimo accesso:
Puoi aggiornare il campo last_login quando un utente effettua l'accesso, mantenendo un registro della sua attività.
Eliminazione di un utente:
Questa query consente di rimuovere un utente dal database in caso di necessità.
Come Implementare
Creazione del database:
Salva la query in un file .sql ed eseguila tramite un'interfaccia come phpMyAdmin o da terminale con un client MySQL/MariaDB.
Integrazione con PHP:
Usa questa tabella come base per autenticazione e gestione utenti in un'applicazione PHP.
Esempio: quando un utente si registra, esegui un INSERT; quando si logga, aggiorna last_login.
Espansioni:
Aggiungi ulteriori campi come role (per definire ruoli utente) o status (per gestire account bloccati/attivi).
Migra l'hashing delle password a funzioni più moderne come PASSWORD_HASH() in PHP per maggiore sicurezza.
Questa query SQL è essenziale per qualsiasi sistema che necessita di gestione utenti, sicurezza, e scalabilità. Puoi usarla come punto di partenza per progetti più complessi!
Lorenzo|Utente0
Rispondi