|
|
Publicēts 07.11.2018 10:05:15
|
|
|

BBS vai vietnēm bieži vien ir tikai jums ir atļauja skatīt šo lapu vai lejupielādēt šo resursu, pirms dažām dienām es apmeklēju nginx serveri, kā īstenot šo failu kontroli, izmantojot x-sendfile.
1. Kas ir X-Sendfile?
X-Sendfile ir mehānisms, kas pārsūta failu lejupielādes pieprasījumus no aizmugures lietojumprogrammas uz priekšgala tīmekļa serveri apstrādei, kas var ievērojami uzlabot servera efektivitāti, novēršot aizmugures programmas spiedienu lasīt un apstrādāt failu, lai apstrādātu sūtīšanu, it īpaši, ja tiek strādāts ar lielu failu lejupielādi.
X-Sendfile tiek ieviests, izmantojot īpašu HTTP galveni: norādot faila adresi X-Sendfile galvenē, lai reklamētu priekšgala tīmekļa serveri. Kad tīmekļa serveris atklāj šo aizmugursistēmas nosūtīto galveni, tas ignorē citu aizmugursistēmas izvadi un izmanto savus komponentus (ieskaitot optimizācijas, piemēram, kešatmiņas galvenes un pārtraukuma punktu atkārtotus savienojumus), lai nosūtītu failu lietotājam.
Tomēr pirms X-Send faila lietošanas ir svarīgi saprast, ka šī nav standarta funkcija un lielākā daļa tīmekļa serveru to atspējo pēc noklusējuma. Dažādiem tīmekļa serveriem ir dažādas implementācijas, tostarp dažādi X-Sendfile galvenes formāti. Ja tas ir nepareizi konfigurēts, lietotāji var lejupielādēt 0 baitu failu.
Izmantojot X-Sendfile, būs iespējams lejupielādēt failus direktorijās, kas nav tīmekļa direktoriji (piemēram, /root/), pat ja fails ir atspējots saskaņā ar .htaccess aizsardzību.
Dažādi tīmekļa serveri ievieš dažādas HTTP galvenes
SENDFILE galvene | Izmantotais WEB serveris | | X-Sūtīšanas fails | Apache, Lighttpd v1.5, Cherokee | | X-LIGHTTPD-sūtīšanas fails | Lighttpd v1.4 | | X-Accel-novirzīšana | Nginx, Čerokī |
X-SendFile izmantošanas trūkums ir tas, ka jūs zaudējat kontroli pār failu pārsūtīšanas mehānismu. Piemēram, ja pēc faila lejupielādes vēlaties veikt noteiktas darbības, piemēram, ļaut lietotājam lejupielādēt failu tikai vienu reizi, šis X-Send fails to nevarēs izdarīt, jo fonā esošais php skripts nezina, vai lejupielāde ir veiksmīga.
2. Kā lietot NGINX?
Nginx atbalsta šo funkciju pēc noklusējuma un neprasa papildu moduļu ielādi. Tas ir tikai tas, ka ieviešana ir nedaudz atšķirīga, un HTTP galvene, kas jānosūta, ir X-Accel-Redirect. Turklāt konfigurācijas failā ir jāveic šādi iestatījumi
iekšējais nozīmē, ka šim ceļam var piekļūt tikai Nginx, un pārlūkprogramma tam nevar piekļūt tieši, lai novērstu nesankcionētas lejupielādes.
3. Kā lietot PHP programmas?
Ja pievienojat galveni X-Accel-Redirect, lietotājs lejupielādēs failu ceļā /game. Mūsu failu atļauju kontrole ir ieviesta.
Oficiālās dokumentācijas ievads:Hipersaites pieteikšanās ir redzama.
|
Iepriekšējo:Mīlestība, laulība un ģimene, mēneša pirmā puse + 18. jūnijsNākamo:CF ir pirmā perspektīva visā tīklā, lai vienu mēnesi pašmērķētu un stabilizētos
|