Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 10873|Yanıt: 0

[Web] Nginx'in X-Sendfile mekanizması (php sürümü) kullanılarak dosya erişimini kontrol edin

[Bağlantıyı kopyala]
Yayınlandı 7.11.2018 10:05:15 | | |
BBS veya web siteleri genellikle sadece sizin bu sayfayı görme veya bu kaynağı indirme iznine sahiptir, birkaç gün önce nginx sunucusunu ziyaret ettim, bu dosya kontrolünü x-sendfile kullanarak nasıl uygulayacağım.

1. X-Sendfile nedir?

X-Sendfile, dosya indirme taleplerini arka uç uygulamadan ön web sunucusuna ileten bir mekanizmadır ve özellikle büyük dosya indirmeleri sırasında dosyayı okuma ve işleme baskısını ortadan kaldırarak sunucu verimliliğini önemli ölçüde artırabilir.

X-Sendfile, X-Sendfile başlığındaki bir dosyanın adresini ön uç web sunucusuna ilan etmek için belirtilen belirli bir HTTP başlığı aracılığıyla uygulanır. Web sunucusu, arka uç tarafından gönderilen bu başlığı algıladığında, arka uçtan gelen diğer çıktıları görmezden gelir ve dosyayı kullanıcıya göndermek için kendi bileşenlerini (önbellek başlıkları ve kesme noktası yeniden bağlantıları gibi optimizasyonlar dahil) kullanır.

Ancak, X-Sendfile kullanmadan önce, bunun standart bir özellik olmadığını ve çoğu web sunucusu tarafından varsayılan olarak devre dışı bırakıldığını anlamak önemlidir. Farklı web sunucularının farklı uygulamaları vardır; farklı X-Sendfile başlık formatları dahil. Yanlış yapılandırılırsa, kullanıcılar 0 baytlık bir dosya indirebilir.

X-Sendfile kullanmak, dosya .htaccess koruması altında devre dışı olsa bile web dışı dizinlerden (örneğin /root/) dosyaların indirilmesine izin verir.

Farklı web sunucuları farklı HTTP başlıkları uygular

SENDFILE başlığı
Kullanılan WEB sunucusu
X-SendfileApache, Lighttpd v1.5, Cherokee
X-LIGHTTPD-send-fileLighttpd v1.4
X-Accel-RedirectNginx, Cherokee

X-SendFile kullanmanın dezavantajı, dosya aktarım mekanizmasının kontrolünü kaybetmenizdir. Örneğin, bir dosyayı indirdikten sonra belirli işlemleri yapmak istiyorsanız, örneğin kullanıcının dosyayı sadece bir kez indirmesine izin vermek gibi, bu X-Sendfile bunu yapamaz çünkü arka plandaki php betiği indirmenin başarılı olup olmadığını bilmez.

2. NGINX nasıl kullanılır?

Nginx bu özelliği varsayılan olarak destekler ve ek modüllerin yüklenmesini gerektirmez. Sadece uygulama biraz farklı ve gönderilmesi gereken HTTP başlığı X-Accel-Redirect. Ayrıca, yapılandırma dosyasında aşağıdaki ayarları yapmanız gerekir

dahili olarak, bu yola yalnızca Nginx içinde erişilebiliyor ve izinsiz indirmeleri önlemek için tarayıcı tarafından doğrudan erişilemiyor.

3. PHP programları nasıl kullanılır?


X-Accel-Redirect başlığını eklerseniz, kullanıcı dosyayı /game yolu altında indirir. Dosya izin kontrolü uygulanıyor.

Resmi dokümantasyon tanıtımı:Bağlantı girişi görünür.




Önceki:Aşk, evlilik ve aile, ayın ilk yarısı + 18 Haziran
Önümüzdeki:CF, tüm ağda bir ay boyunca kendi kendine odaklanıp istikrara kavuşan ilk bakış açısıdır
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com