v2.5.2
Giriş yap

no redirect açığı nasıl kapatılır ?

Anonim
147 defa görüntülendi

no redirect açığı nasıl kapatılır ?

Cevap yaz
Cevaplar (2)
ebykdrms
66 gün önce

Bir kullanıcının bulunmaması gereken bir sayfada bulunması ve "no redirect" ile başka sayfaya yönlendirilmekten kurtulması...
Eğer kullanıcıyı başka sayfaya yönlendiremiyorsak, en azından bu sayfanın içeriğini görmesini engelleyebiliriz.

Mesela kullanıcı login olduktan sonra /admin/dashboard url'sine yönlendiriliyor olsun.
Ama kullanıcı login ekranını geçip direkt url üzerinden /admin/dashboard diyerek bu ekrana girmiş olsun.
Biz bu sayfada kullanıcının yetkisi olup olmadığını kontrol ediyoruz ve eğer yetkisi yoksa /login ekranına redirect ediyoruz.
Ama kullanıcının tarayıcısında bir eklenti var ve redirect işlemlerini engelliyor.

  • Haliyle /login ekranına yönlendirilemiyor.
  • Haliyle /admin/dashboard ekranında kalıyor.
  • Haliyle /admin/dashboard ekranının içeriğini de görebiliyor veya en azından session'ı/token'ı olmadığından oluşan hata mesajlarını görebiliyor.

Bu durumda redirect komutunu verdiğimiz yerde kodların çalışmasını da durdurmak için bir komut kullanmalıyız.

Bahsettiğimiz dil php ise:

if(!$hasAccess) {
    // Kullanıcının yetkisinin olmadığını anlamışız ve login ekranına yönlendiriyoruz.
    header("Location:login");
    
    // Eğer bir şekilde yönlendirme komutu engellenirse bile exit komutu sayesinde sayfa içeriğinin görünmesini engelliyoruz.
    exit("Bu sayfayı görüntülemek için oturum açmanız gerekiyor. Lütfen giriş ekranına gidiniz...");
}
// Bu if bloğundan sorunsuzca geçebilirse sayfa içeriğini gösteriyoruz.
// Sayfanın içerikleri...

Tek satırlık basit bir çözüm ama yazılımcılar bunu unutabiliyorlar...

hisystem
45 gün önce

teşekkürler