. Htaccess olmadan güvenli bir dizini şifre koruması

2 Cevap php

Ben güvenli bir giriş oluşturmak için benim PHP becerileri güvenmiyorum, ama AuthUserFile için göreceli yolları kullanamaz öğrendim gibi, ben yazıyorum bir php komut dosyası için bir dizin korumak şifre. Htaccess kullanmak için gidiyordu ve ben yapamadım Bu genelleme.

Eğer bir dizin korumak şifre güvenli bir PHP oturum açma komut bana doğrudan olsaydı ben çok minnettar olacaktır. Teşekkürler.

2 Cevap

Yapabileceğiniz tek şey, sunucunun webroot dışında bir dizine tüm "gizli" dosyaları tutmak. Bu dosyalar için tüm erişim sonra dizini içine tek bir PHP-komut dosyası aracılığıyla yönlendirilebilir. Böyle bir şey:

http://www.example.com/protected-directory/access.php?file=/foo/document.doc

Bu gibi bir dizin yapısı ile:

+--+ /server_root
   |
   +--+ /web_root
   |  |
   |  +--+ /protected-directory
   |     +-- access.php
   |     +-- access-denied.html
   |
   +--+ /protected_root
      |
      +--+ /foo
         +-- document.doc

Senin içinde access.php Eğer böyle bir şey yapardı:

$file = $_REQUEST['file'];
if ($user->hasAccessTo($file)) {
    readfile("/server_root/protected_root/$file");
} else {
    readfile('access-denied.html');
}

Şimdi, size file parametresi ile kimsenin vidalar yapmak ve "../../../etc/passwd" gibi bir şey boyunca geçerken dikkatli olmak zorunda. Ayrıca, muhtemelen yukarıdaki örnekte doğru başlıklarını göndermek emin olmak istiyorum, ben netlik nedenlerle bu atlanmış.

Sen AuthUserFile mutlak yollarını kullanın ve web sunucusu erişilebilir bir yerde bu dosyayı koymak için düzenleyebilirsiniz. Ben yıllarca yaptık. Gayet iyi çalışıyor.