Jinsi ya Kutengeneza Login System Salama kwa PHP (CSRF + PDO)
Katika Faulink Systems Portal, login system imejengwa kwa kutumia PHP na PDO, ikiwa na ulinzi dhidi ya SQL Injection, session hijacking na CSRF attacks. Mfumo huu unahakikisha kuwa kila mtumiaji anaingia kwa usalama na data zake zinalindwa.
Kosa kubwa ambalo developers wengi hufanya ni kutumia mysqli bila prepared statements au kuhifadhi password bila hashing. Hili ni hatari sana kwenye mifumo ya kisasa.
Muundo wa Table ya Users
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
fullname VARCHAR(100),
email VARCHAR(100),
password VARCHAR(255),
role VARCHAR(50),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Kuingiza User kwa Usalama
$password = password_hash($_POST['password'], PASSWORD_DEFAULT);
$stmt = $pdo->prepare("INSERT INTO users(fullname,email,password,role) VALUES(?,?,?,?)");
$stmt->execute([$name,$email,$password,$role]);
Kuthibitisha Login
$stmt = $pdo->prepare("SELECT * FROM users WHERE email = ?");
$stmt->execute([$email]);
$user = $stmt->fetch();
if($user && password_verify($password,$user['password'])){
session_start();
session_regenerate_id(true);
$_SESSION['user_id'] = $user['id'];
$_SESSION['role'] = $user['role'];
}else{
echo "Invalid login details";
}
Kuzuia SQL Injection
$stmt = $pdo->prepare("SELECT * FROM users WHERE email = ?");
Hii inazuia mtu kuandika code kama:
' OR 1=1 --
CSRF Protection
if(empty($_SESSION['token'])){
$_SESSION['token'] = bin2hex(random_bytes(32));
}
<input type="hidden" name="token" value="<?=$_SESSION['token']?>">
Kuthibitisha Token
if($_POST['token'] !== $_SESSION['token']){
die("Invalid request");
}
Kuzuia Brute Force Attack
if($attempts > 5){
die("Account locked for 10 minutes");
}
Kwa kutumia mbinu hizi, mfumo wako unakuwa salama kwa kiwango cha kitaalamu na unaweza kuaminika na wateja au taasisi.
Faulink Systems Portal hutumia security layers nyingi kama session regeneration, password hashing, CSRF tokens na login attempt limits ili kuhakikisha kila mtumiaji yuko salama.
Kwa mifumo zaidi ya kitaalamu ya shule na biashara, tembelea:
https://faulink.com
https://faulink.com/security