Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 10873|Odpověď: 0

[Web] Řízení přístupu k souborům pomocí mechanismu X-Sendfile od Nginx (verze php)

[Kopírovat odkaz]
Zveřejněno 07.11.2018 10:05:15 | | |
BBS nebo weby často mají pouze povolení vidět tuto stránku nebo stáhnout tento zdroj, před pár dny jsem navštívil server nginx, jak implementovat tuto kontrolu souborů, pomocí x-sendfile.

1. Co je X-Sendfile?

X-Sendfile je mechanismus, který předává požadavky na stažení souborů z backendové aplikace na front-end webový server k jejich zpracování, což může výrazně zlepšit efektivitu serveru tím, že odstraní tlak na back-end program při čtení a zpracování souboru pro zpracování odeslání, zejména při velkých stahováních.

X-Sendfile je implementován pomocí specifické HTTP hlavičky: určení adresy souboru v hlavičce X-Sendfile, která má být propagována front-end webovému serveru. Když webový server detekuje tuto hlavičku odeslanou backendem, ignoruje ostatní výstupy z backendu a používá vlastní komponenty (včetně optimalizací, jako jsou hlavičky cache a přerušení přerušení), aby soubor odeslal uživateli.

Před použitím X-Sendfile je však důležité pochopit, že to není standardní funkce a většina webových serverů ji ve výchozím nastavení zakáže. Různé webové servery mají různé implementace, včetně různých formátů hlaviček X-Sendfile. Pokud je nesprávně nastaveno, uživatelé si mohou stáhnout soubor o velikosti 0 bajtů.

Použití X-Sendfile umožní stahování souborů z newebových adresářů (např. /root/), i když je soubor zakázán v rámci ochrany .htaccess.

Různé webové servery implementují různé HTTP hlavičky

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

Nevýhodou používání X-SendFile je, že ztratíte kontrolu nad mechanismem přenosu souborů. Například pokud chcete po stažení souboru provést určité činnosti, například umožnit uživateli stáhnout soubor pouze jednou, tento X-Sendfile to neudělá, protože php skript na pozadí neví, zda je stažení úspěšné.

2. Jak používat NGINX?

Nginx tuto funkci ve výchozím nastavení podporuje a nevyžaduje načítání dalších modulů. Jenže implementace je trochu jiná a HTTP hlavička, kterou je třeba odeslat, je X-Accel-Redirect. Kromě toho musíte v konfiguračním souboru nastavit následující nastavení

interní znamená, že tato cesta je přístupná pouze v rámci Nginx a nemůže být přímo přístupná prohlížečem, aby se zabránilo neoprávněnému stahování.

3. Jak používat PHP programy?


Pokud přidáte hlavičku X-Accel-Redirect, uživatel si soubor stáhne pod cestou /game. Naše kontrola oprávnění k souborům je implementována.

Oficiální dokumentace úvod:Přihlášení k hypertextovému odkazu je viditelné.




Předchozí:Láska, manželství a rodina, první polovina měsíce + 18. června
Další:CF je první pohled na celou síť, který se na jeden měsíc zaměřuje a stabilizuje
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com