Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 10873|Válasz: 0

[Web] Fájlhozzáférés vezérlése Nginx X-Sendfile mechanizmusával (php verzió)

[Linket másol]
Közzétéve 2018. 11. 07. 10:05:15 | | |
A BBS-nek vagy a weboldalaknak gyakran csak neked van engedélyed arra, hogy megnézd ezt az oldalt, vagy letöltheted ezt az erőforrást, néhány nappal ezelőtt ellátogattam a nginx szerverre, hogy hogyan lehet ezt a fájlvezérlést megvalósítani x-sendfile segítségével.

1. Mi az az X-Sendfile?

Az X-Sendfile egy olyan mechanizmus, amely a fájlletöltési kéréseket továbbítja a háttérbeli alkalmazástól a front-end webszerverhez feldolgozásra, ami jelentősen javíthatja a szerver hatékonyságát azáltal, hogy eltávolítja a háttérprogram nyomását, hogy olvassa és feldolgozza a fájlt a küldéshez, különösen nagy fájlletöltések esetén.

Az X-Sendfile egy adott HTTP fejlécen keresztül valósul meg: megadja egy fájl címét az X-Sendfile fejlécében, hogy reklámozza a front-end webszervernek. Amikor a webszerver észleli ezt a backend által küldött fejlécet, figyelmen kívül hagyja a háttérből érkező egyéb kimeneteket, és saját komponenseket (beleértve az olyan optimalizálásokat, mint a gyorsítótár fejlécek és megszakítási pontok újrakapcsolódásai) használja a fájl elküldésére a felhasználónak.

Azonban az X-Sendfile használata előtt fontos megérteni, hogy ez nem szabványos funkció, és a legtöbb webszerver alapértelmezés szerint letiltja. A különböző webszerverek eltérő megvalósítással rendelkeznek, beleértve az X-Sendfile fejlécformátumokat is. Ha rosszul konfigurálják, a felhasználók letölthetnek egy 0 bájtos fájlt.

Az X-Sendfile használata lehetővé teszi a fájlok letöltését nem webes könyvtárakból (pl. /root/), még akkor is, ha a fájl le van tiltva a .htaccess védelem alatt.

Különböző webszerverek eltérő HTTP fejléceket valósítanak meg

SENDFILE fejléc
WEB szerver használata
X-SendfileApache, Lighttpd v1.5, Cherokee
X-LIGHTTPD-send-fileLighttpd v1.4
X-Accel-ÁtirányításNginx, cseroki

Az X-SendFile használatának hátránya, hogy elveszíted az irányítást a fájlátviteli mechanizmus felett. Például, ha bizonyos műveleteket szeretnél végrehajtani egy fájl letöltése után, például csak egyszer engeded a felhasználó letölteni a fájlt, ez az X-Sendfile nem képes rá, mert a háttérben lévő php szkript nem tudja, hogy a letöltés sikeres-e.

2. Hogyan kell használni az NGINX-et?

A Nginx alapértelmezetten támogatja ezt a funkciót, és nem igényel további modulok betöltését. Csak a megvalósítás kicsit más, és a HTTP fejléc, amit el kell küldeni, az X-Accel-Redirect. Ezen felül a konfigurációs fájlban a következő beállításokat kell beállítani

a belső megoldás azt jelenti, hogy ez az útvonal csak a Nginx-en belül érhető el, és közvetlenül böngészővel nem érhető el, hogy megakadályozza az engedély nélküli letöltéseket.

3. Hogyan lehet használni a PHP programokat?


Ha hozzáadod az X-Accel-Redirect fejlécét, a felhasználó letölti a fájlt a /game út alatt. A fájlengedély-ellenőrzésünk megvalósított.

Hivatalos dokumentáció bevezetése:A hiperlink bejelentkezés látható.




Előző:Szerelem, házasság és család, a hónap első fele + június 18.
Következő:A CF az első nézőpont az egész hálózaton, amely egy hónapig öncélba lép és stabilizálódik
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com