Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 10873|Svar: 0

[Web] Kontrollfilåtkomst med Nginx X-Sendfile-mekanism (php-version)

[Kopiera länk]
Publicerad på 2018-11-07 10:05:15 | | |
BBS eller webbplatser har ofta bara du som har behörighet att se denna sida eller ladda ner denna resurs, för några dagar sedan besökte jag nginx-servern för hur man implementerar denna filkontroll, med x-sendfile.

1. Vad är X-Sendfile?

X-Sendfile är en mekanism som vidarebefordrar filnedladdningsförfrågningar från backend-applikationen till frontend-webbservern för bearbetning, vilket kan förbättra serverns effektivitet avsevärt genom att ta bort pressen från backend-programmet att läsa och bearbeta filen för att sedan bearbeta sändningen, särskilt vid stora filnedladdningar.

X-Sendfile implementeras genom en specifik HTTP-header: som specificerar adressen till en fil i X-Sendfile-headern för att annonsera till frontend-webbservern. När webbservern upptäcker denna header som skickas av backend, ignorerar den annan utdata från backend och använder sina egna komponenter (inklusive optimeringar som cacheheaders och brytpunktsåteranslutningar) för att skicka filen till användaren.

Men innan du använder X-Sendfile är det viktigt att förstå att detta inte är en standardfunktion och är inaktiverad av de flesta webbservrar som standard. Olika webbservrar har olika implementationer, inklusive olika X-Sendfile-headerformat. Om den är felkonfigurerad kan användare ladda ner en 0-bytesfil.

Att använda X-Sendfile tillåter nedladdning av filer i icke-webbkataloger (t.ex. /root/) även om filen är inaktiverad under .htaccess-skyddet.

Olika webbservrar implementerar olika HTTP-headers

SENDFILE-header
WEB-server som används
X-SendfileApache, Lighttpd v1.5, Cherokee
X-LIGHTTPD-send-fileLighttpd v1.4
X-Accel-omdirigeringNginx, Cherokee

Nackdelen med att använda X-SendFile är att du förlorar kontrollen över filöverföringsmekanismen. Till exempel, om du vill utföra vissa åtgärder efter att ha laddat ner en fil, till exempel att låta användaren ladda ner filen bara en gång, kommer denna X-Sendfile inte att kunna göra det eftersom php-skriptet i bakgrunden inte vet om nedladdningen är framgångsrik.

2. Hur använder man NGINX?

Nginx stöder denna funktion som standard och kräver inga ytterligare moduler för att laddas. Det är bara det att implementationen är lite annorlunda, och HTTP-headern som behöver skickas är X-Accel-Redirect. Dessutom behöver du göra följande inställningar i konfigurationsfilen

intern innebär att denna sökväg endast kan nås inom Nginx och inte kan nås direkt av webbläsaren för att förhindra obehöriga nedladdningar.

3. Hur använder man PHP-program?


Om du lägger till X-Accel-Redirect-headern kommer användaren att ladda ner filen under /game path. Vår filbehörighetskontroll är implementerad.

Officiell dokumentationsintroduktion:Inloggningen med hyperlänken är synlig.




Föregående:Kärlek, äktenskap och familj, första halvan av månaden + 18 juni
Nästa:CF är det första perspektivet på hela nätverket som självsiktar och stabiliserar sig i en månad
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com