Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 10873|Svar: 0

[Web] Kontroller filadgang ved hjælp af Nginx' X-Sendfile-mekanisme (php-version)

[Kopier link]
Opslået på 07/11/2018 10.05.15 | | |
BBS eller hjemmesider har ofte kun dig til at se denne side eller downloade denne ressource. For et par dage siden besøgte jeg nginx-serveren for at bruge x-sendfile, hvordan man implementerer denne filkontrol.

1. Hvad er X-Sendfile?

X-Sendfile er en mekanisme, der videresender fildownloadanmodninger fra backend-applikationen til front-end webserveren til behandling, hvilket kan forbedre serverens effektivitet betydeligt ved at fjerne presset fra backend-programmet for at læse og behandle filen for at behandle afsendelsen, især ved store fildownloads.

X-Sendfile implementeres gennem et specifikt HTTP-header: der angiver adressen på en fil i X-Sendfile-headeren for at annoncere til front-end webserveren. Når webserveren opdager dette header, der sendes af backend, ignorerer den andet output fra backend og bruger sine egne komponenter (herunder optimeringer som cache-headere og breakpoint-genforbindelser) til at sende filen til brugeren.

Men før man bruger X-Sendfile, er det vigtigt at forstå, at dette ikke er en standardfunktion og som standard deaktiveres af de fleste webservere. Forskellige webservere har forskellige implementeringer, herunder forskellige X-Sendfile-headerformater. Hvis den er forkert konfigureret, kan brugere downloade en 0-byte fil.

Brug af X-Sendfile vil tillade download af filer i ikke-webmapper (f.eks. /root/), selvom filen er deaktiveret under .htaccess-beskyttelse.

Forskellige webservere implementerer forskellige HTTP-headere

SENDFILE-header
WEB-server brugt
X-SendfileApache, Lighttpd v1.5, Cherokee
X-LIGHTTPD-send-fileLighttpd v1.4
X-Accel-RedirectNginx, Cherokee

Ulempen ved at bruge X-SendFile er, at du mister kontrollen over filoverførselsmekanismen. For eksempel, hvis du vil udføre visse handlinger efter at have downloadet en fil, såsom at lade brugeren downloade filen kun én gang, vil denne X-Sendfile ikke kunne gøre det, fordi php-scriptet i baggrunden ikke ved, om downloadet er lykkedes.

2. Hvordan bruger man NGINX?

Nginx understøtter denne funktion som standard og kræver ikke, at der indlæses yderligere moduler. Det er bare, at implementeringen er lidt anderledes, og den HTTP-header, der skal sendes, er X-Accel-Redirect. Derudover skal du foretage følgende indstillinger i konfigurationsfilen

intern betyder, at denne sti kun kan tilgås inden for Nginx og ikke kan tilgås direkte af browseren for at forhindre uautoriserede downloads.

3. Hvordan bruger man PHP-programmer?


Hvis du tilføjer X-Accel-Redirect-headeren, vil brugeren downloade filen under /game path. Vores filtilladelseskontrol er implementeret.

Introduktion til officiel dokumentation:Hyperlink-login er synlig.




Tidligere:Kærlighed, ægteskab og familie, første halvdel af måneden + 18. juni
Næste:CF er det første perspektiv på hele netværket, der selvsigter og stabiliserer sig i en måned
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com