Kullanıcı Yetkilendirme ve Güvenlik Önlemleri

Web stajımda kullanıcı seviyelerine göre yetkilendirme sistemleri geliştirdim. Aynı zamanda SQL injection ve session güvenliği gibi kritik güvenlik önlemlerini uygulayarak sistemimi daha güvenli hale getirdim.

Ali YILMAZ
Ali YILMAZ

Yönetici

156

Kullanıcı Yetkilendirme ve Güvenlik Önlemleri

Stajımın onuncu haftasında, kullanıcıların sisteme giriş yaptıktan sonra hangi yetkilerle işlem yapacağını belirlemeyi ve sistem güvenliğini artırmayı hedefleyen çalışmalara başladım. Bu süreçte kullanıcı yetkilendirme ve güvenlik önlemleri konusunda önemli bilgiler edindim.

Kullanıcı Yetkilendirme Nedir?

Kullanıcı yetkilendirme, giriş yapan kullanıcının hangi işlemleri yapabileceğini kontrol etmektir. Örneğin, "admin" kullanıcı tüm işlemleri yapabilirken, "kullanici" sadece içerik görüntüleyebilir.

Veritabanı Yapısı


CREATE TABLE kullanicilar (
  id INT AUTO_INCREMENT PRIMARY KEY,
  kullanici_adi VARCHAR(50),
  sifre VARCHAR(50),
  rol ENUM('admin','kullanici') DEFAULT 'kullanici'
);

Yeni kullanıcı ekleme:


INSERT INTO kullanicilar (kullanici_adi, sifre, rol) 
VALUES ('admin', '1234', 'admin');

Giriş Sonrası Yetki Kontrolü


<?php
session_start();
$rol = $_SESSION['rol'];

if($rol == 'admin'){
  echo "Yönetici paneline hoş geldiniz.";
} else {
  echo "Bu sayfayı görüntülemeye yetkiniz yok.";
}
?>

SQL Injection Koruması

Veritabanına veri gönderirken doğrudan değişken eklemek yerine, prepared statement kullandım:


<?php
$baglanti = mysqli_connect("localhost", "root", "", "staj");
$stmt = mysqli_prepare($baglanti, "SELECT * FROM kullanicilar WHERE kullanici_adi=? AND sifre=?");
mysqli_stmt_bind_param($stmt, "ss", $kadi, $sifre);
$kadi = $_POST['kadi'];
$sifre = $_POST['sifre'];
mysqli_stmt_execute($stmt);
?>

Session Güvenliği

  • Session ID’nin başkasına geçmemesi için session_regenerate_id(true) kullandım.
  • Oturumu kapatırken session_destroy() ile tüm verileri sıfırladım.

Basit Rol Tabanlı Menü Sistemi


<?php
if($_SESSION['rol'] == 'admin'){
  echo "<a href='admin-panel.php'>Admin Panel</a>";
} else {
  echo "<a href='kullanici-panel.php'>Kullanıcı Paneli</a>";
}
?>

Karşılaştığım Zorluklar

  • Başta tüm kullanıcıların aynı sayfalara ulaşabilmesi sistemi karmaşıklaştırıyordu
  • SQL injection hakkında farkındalığım yoktu, hazırlıksız SQL komutları tehlike oluşturuyordu
  • Rol verisini session içinde doğru saklamayı öğrenmem zaman aldı

Genel Değerlendirme

Bu haftaki çalışmalarımda web projelerinde kullanıcıların yetkilerini sınırlandırmanın ne kadar önemli olduğunu fark ettim. Özellikle yönetici işlemlerini sadece admin rolündeki kullanıcılara açarak sistemin güvenliğini büyük ölçüde artırdım. Ayrıca SQL injection gibi saldırılara karşı nasıl koruma sağlayacağımı öğrenmek bana çok şey kattı.




Paylaş

Etiketler


Yorum Yok

    Bu Yazıya Hiç Yorum Yapılmamış. İlk Yorum Yapan Sen Ol !

Yorum Yap


Instagram