login:
if($_POST): $return = array(); $username = htmlentities(mysql_real_escape_string($_POST["username"])); $ask = $database->query("SELECT * from tm_members where username='$username'")->fetch(); if($_POST["username"] == "" and $_POST["password"] == ""): $return["error"] = "hata"; else: if(isset($_POST["username"])): if (($_POST["username"] == $ask["username"]) and (sha1(base64_encode(md5(base64_encode($_POST["password"])))) == $ask['password'])): $_SESSION["login"] = "true"; $_SESSION["username"] = $_POST["username"]; $_SESSION["password"] = $_POST["password"]; $return["url"] = "dashboard.php"; else: $return["error"] = "Kullanıcı Yok"; endif; endif; endif; echo json_encode($return); endif;
logout:
session_start(); session_destroy(); header("Location: index.php");
--R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 10:50:33 -->-> Daha önceki mesaj 10:47:00 --
http://meteoncu.com/php-uyelik-siste...uvenlik-duvari
Şu makaledeki ilk açıklamaları okuyunca korktum açıkçası.
Orda biraz paranoya var gibi geldi bana. Ben kendi kullandığım yapıyı anlatayım.
Formdan doldurulan değerler veritabanında varsa, 4 session oluştur.
kullanici_id , giris , username , pass(şifrelenmiş hali)
Her sayfada sessionlardan bu değerleri alır, bu bilgilerle bir üye kaydı olup olmadığına bakarım. Sistem üzerinden şifre değiştiğinde de, otomatik olarak login'e atıyor haliyle, ki olması gerekende bu bence.
Benim sistemde, session'a müdahele edilse bile kullanıcının şifresinin şifrelenmiş halini bilmesi lazım ki sisteme girebilsin. Verdiğin linkteki yapıda da benzer işi üretilen kod yapıyor.
Ayrıca ordaki sistem botlara engel koymuyor sadece limitlendiriyor. 2sn'de bir işleme izin veriyor.