Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 10873|Odpoveď: 0

[Web] Ovládanie prístupu k súborom pomocou mechanizmu X-Sendfile od Nginx (php verzia)

[Kopírovať odkaz]
Zverejnené 7. 11. 2018 10:05:15 | | |
BBS alebo webové stránky často majú povolenie vidieť túto stránku alebo stiahnuť tento zdroj, pred pár dňami som navštívil nginx server, ako implementovať túto kontrolu súborov, pomocou x-sendfile.

1. Čo je X-Sendfile?

X-Sendfile je mechanizmus, ktorý prenáša požiadavky na stiahnutie súborov z backendovej aplikácie na front-end webový server na spracovanie, čo môže výrazne zlepšiť efektivitu servera tým, že odstráni tlak backendového programu na čítanie a spracovanie súboru na spracovanie odoslania, najmä pri veľkých sťahovaniach súborov.

X-Sendfile je implementovaný prostredníctvom špecifickej HTTP hlavičky: špecifikuje adresu súboru v hlavičke X-Sendfile, aby sa propagovala front-end webovému serveru. Keď webový server deteguje túto hlavičku odoslanú backendom, ignoruje ostatné výstupy z backendu a používa vlastné komponenty (vrátane optimalizácií ako hlavičky cache a prerušovacie pripojenia) na odoslanie súboru používateľovi.

Pred použitím X-Sendfile je však dôležité pochopiť, že to nie je štandardná funkcia a väčšina webových serverov ju štandardne deaktivuje. Rôzne webové servery majú rôzne implementácie, vrátane rôznych formátov hlavičiek X-Sendfile. Ak je nesprávne nastavený, používatelia si môžu stiahnuť súbor s veľkosťou 0 bajtov.

Použitie X-Sendfile umožní sťahovanie súborov z newebových adresárov (napr. /root/) aj v prípade, že súbor je deaktivovaný v rámci ochrany .htaccess.

Rôzne webové servery implementujú rôzne HTTP hlavičky

Hlavička SENDFILE
Použitý WEB server
X-SendfileApache, Lighttpd v1.5, Cherokee
X-LIGHTTPD-send-fileLighttpd v1.4
X-Accel-PresmerovanieNginx, Cherokeeovia

Nevýhodou použitia X-SendFile je, že stratíte kontrolu nad mechanizmom prenosu súborov. Napríklad, ak chcete vykonať určité akcie po stiahnutí súboru, napríklad umožniť používateľovi stiahnuť súbor iba raz, tento X-Sendfile to nebude môcť urobiť, pretože php skript na pozadí nevie, či je stiahnutie úspešné.

2. Ako používať NGINX?

Nginx túto funkciu štandardne podporuje a nevyžaduje načítanie ďalších modulov. Lenže implementácia je trochu iná a HTTP hlavička, ktorú treba poslať, je X-Accel-Redirect. Okrem toho musíte v konfiguračnom súbore nastaviť nasledujúce nastavenia

interné znamená, že táto cesta je prístupná iba v rámci Nginx a prehliadač k nej nemôže pristupovať priamo, aby sa zabránilo neoprávnenému sťahovaniu.

3. Ako používať PHP programy?


Ak pridáte hlavičku X-Accel-Redirect, používateľ si súbor stiahne pod cestou /game. Naša kontrola oprávnení súborov je implementovaná.

Úvod k oficiálnej dokumentácii:Prihlásenie na hypertextový odkaz je viditeľné.




Predchádzajúci:Láska, manželstvo a rodina, prvá polovica mesiaca + 18. jún
Budúci:CF je prvý pohľad celej siete, ktorý sa na jeden mesiac zameria a stabilizuje
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com