Eğer html, css, js, img ve sunucusu üzerinde bir dizin içindeki vb dosyaları çok var diyelim. http://example.com/static-files/sub/index.html: Normalde, internet topraklarda herhangi bir kullanıcı bu yüzden gibi sadece tam URL yazarak bu dosyalara erişmek olabilir
Şimdi, sadece yetkili kullanıcıların bu dosyaları yüklemek mümkün olmak istiyorum? Bu örneğin, kullanıcıların bu gibi bir URL'den ilk oturum diyelim: http://example.com/login.php
Nasıl izin index.html dosyasını (ya da "statik dosyaları" altında dosyalardan herhangi) görüntüleyebilir, ancak herkes için dosyayı kısıtlamak kullanıcı giriş?
Ben bugüne kadar iki olası çözümleri ile geldi:
Solution 1
Create the following .htaccess file under "static-files":
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^(.*)$ ../authorize.php?file=$1 [NC]
Sonra authorize.php in ...
if (isLoggedInUser()) readfile('static-files/'.$_REQUEST['file']);
else echo 'denied';
Bu authorize.php dosya basitleştirilmiş fena halde üzerinden, ama fikir olsun.
Solution 2
Create the following .htaccess file under "static-files":
Order Deny,Allow
Deny from all
Allow from 000.000.000.000
Ve sonra benim giriş sayfası olduğunu eklemek olabilir. Htaccess dosyasını Açıkçası bu da eski veya artık kullanılan IP'leri üzerinden temizlemek için temizlik rutin bir tür olması gerekir içeri açan her kullanıcı için bir IP ile.
I worry that my first solution could get pretty expensive on the server as the number of users and files they are accessing increases. I think my second solution would be much less expensive, but is also less secure due to IP spoofing and etc. I also worry that writing these IP addresses to the htaccess file could become a bottleneck of the application if there are many simultaneous users.
Bu çözümlerden hangisi iyi geliyor, ve neden? Alternatif olarak, bu ikisinden daha iyi olurdu tamamen farklı bir çözüm düşünebilirsiniz?