• 01-10-2026, 09:37:16
    #1
    Authentication Bypass, bir uygulamanın giriş veya kimlik doğrulama mekanizmasının çeşitli mantık hataları nedeniyle atlatılabilmesi durumudur.

    Normalde kullanıcı adı, şifre veya başka bir doğrulama adımı geçilmeden korumalı alana erişilememesi gerekir. Ancak kontrol yanlış yazılmışsa saldırgan doğrulama sürecini devre dışı bırakabilir.

    Örneğin uygulama yetkiyi kullanıcıdan gelen bir parametreye göre belirliyorsa;

    if ($_GET['admin'] == 1) {
        $_SESSION['is_admin'] = true;
    }
    bu yapı ciddi bir güvenlik problemidir. Çünkü kullanıcı;

    ?admin=1
    gibi bir değer göndererek kendi yetkisini değiştirebilir.

    Authentication Bypass sadece böyle basit hatalardan oluşmaz. Zayıf session kontrolleri, hatalı şifre sıfırlama sistemi, yanlış token doğrulaması veya PHP'deki gevşek karşılaştırmalar da benzer sonuçlara yol açabilir.

    Örneğin güvenlik açısından kritik değerlerde;

    if ($token == $userToken)
    yerine tür kontrolü de yapan;

    if ($token === $userToken)
    kullanılması bazı beklenmeyen karşılaştırma problemlerinin önüne geçebilir.

    Buradaki temel problem, uygulamanın kullanıcının gerçekten kim olduğunu güvenilir şekilde doğrulamadan yetki vermesidir.

    Giriş ekranının bulunması tek başına güvenli bir authentication sistemi olduğu anlamına gelmez.

    Authentication Bypass açıklarını önlemek için kimlik doğrulama ve yetkilendirme kontrolleri tamamen sunucu tarafında yapılmalı, session ve token değerleri güvenli şekilde doğrulanmalı ve kullanıcı tarafından değiştirilebilen hiçbir veri doğrudan yetki belirlemek için kullanılmamalıdır.
  • 01-10-2026, 09:53:21
    #2
    Doğru yaklaşım şu:"Authentication ve authorization tamamen server-side doğrulanmalı".Kullanıcıdan gelen admin,role,token gibi değerler doğrudan yetki belirlememeli,session/token imzalı ve doğrulanmış olmalı,yetki her istekte backend tarafında kontrol edilmeli. === kullanmak faydalı ama tek başına authentication bypassı engellemez.
  • 01-10-2026, 10:22:13
    #3
    Eline sağlık, mantığı gayet anlaşılır ve sade özetlemişsin.
    Özellikle PHP'de değindiğin gevşek karşılaştırma (== vs ===) konusu çok kritik; bilmeyenler için hâlâ baş ağrıtan Type Juggling (Magic Hash) zafiyetlerinin temel sebebi burası.
    Güncel mimarilerde buna ek olarak en sık karşılaşılan bypass senaryoları genelde JWT (JSON Web Token) implementasyonlarında yaşanıyor. Algoritmanın none yapılması (alg: none) veya RS256/HS256 karışıklığı yüzünden sunucu tarafında imza doğrulaması bypass edilebiliyor.
    İstemciden gelen hiçbir veriye (cookie, header, GET/POST parametresi) güvenmemek ve doğrulamayı daima katı (strict) tür kontrolleriyle sunucu tarafında bitirmek altın kural. Faydalı paylaşım için teşekkürler.