Fájlfeltöltés biztonsága
Feltöltési korlátozások, a feltöltési mappa védelme, letöltési hivatkozások, útvonal módosítása, .htaccess és a szerveren kívüli tárolás lehetőségei.
Ez a fejezet a Fájlfeltöltés mező biztonsági szempontjait foglalja össze: ki tölthet fel fájlt, hol tárolódik, ki tudja letölteni, és milyen alternatívák vannak a saját szerveren való tárolás helyett. A mezőről magáról a Fájlfeltöltés fejezetben olvashatsz.
Feltöltés csak bejelentkezett felhasználóknak
Szekció neve “Feltöltés csak bejelentkezett felhasználóknak”Fájl csak akkor kerülhet a szerverre, ha egy aktív űrlapon van Fájlfeltöltés mező. Ha egyetlen aktív űrlapon sincs ilyen mező, nem tölthető fel fájl.
Ha lehet, állítsd be az űrlapnál, hogy bejelentkezés kell hozzá. Így csak hitelesített felhasználók tölthetnek fel fájlt. Ha a bejelentkezés nem megoldható, olvasd végig a fejezet többi részét.
Engedélyezett kiterjesztések
Szekció neve “Engedélyezett kiterjesztések”A mező felvételekor a lehető legszigorúbb kiterjesztéslistát add meg. A Gravity Forms bizonyos kiterjesztéseket mindig letilt a támadások ellen, de érdemes csak azokra a fájltípusokra szűkíteni, amelyeket valóban vársz.
A Gravity Forms feltöltési mappája
Szekció neve “A Gravity Forms feltöltési mappája”A Gravity Forms almappa-szerkezetet hoz létre a WordPress feltöltési gyökerében. A mappák egyedi nevet kapnak, ugyanazzal az eljárással (sózott HMAC-MD5), amelyet a WordPress használ, hogy nehéz legyen nyers erővel kitalálni őket. Egy űrlap fájljainak mappája így néz ki:
/path/to/wordpress/wp-content/uploads/gravity_forms/82-ea1cf844318d032fd7e8fa8w1dacdfbeMinden almappába üres index.html fájl kerül, hogy a rosszul beállított webszervereken ne jelenjen meg a könyvtárlista a keresőkben. Ezeket a fájlokat ne töröld.
Összefűző címkék és fájlcímek
Szekció neve “Összefűző címkék és fájlcímek”A fájlok addig biztonságban vannak, amíg az űrlap mappájának neve nem kerül nyilvánosságra. A rendszergazdáknak küldött értesítésekben használhatsz fájlfeltöltés-összefűző címkét. Ha a fájlok bizalmasak, ne használd ezeket a címkéket a megerősítésekben, és a nem rendszergazda címzetteknek szóló értesítésekben.
Biztonságos letöltési helyek
Szekció neve “Biztonságos letöltési helyek”Alapból a fájlok letöltési címei elrejtik a fájl szerveren lévő helyét, így a hivatkozásból nem derül ki az elérési út. Ezt nem ajánlott kikapcsolni.
A letöltéshez való hozzáférést három szűrő szabályozza:
| Szűrő | Mire jó |
|---|---|
gform_require_login_pre_download |
A letöltési cím csak bejelentkezett felhasználónak ad hozzáférést a fájlhoz. |
gform_permission_granted_pre_download |
Egyéni logikát futtat (például jogosultság-ellenőrzést), és ez dönti el, hogy a cím hozzáférést ad-e. Jó példa: a letöltés korlátozása a beküldés készítőjére. |
gform_secure_file_download_location |
Kikapcsolja a biztonságos letöltési helyeket. Nem ajánlott. |
A fájlfeltöltési mezők többi szűrője a fejlesztői hivatkozásokban található.
A feltöltési útvonal módosítása
Szekció neve “A feltöltési útvonal módosítása”A nagyobb biztonság érdekében a feltöltött fájlokat másik helyre is teheted a szerveren a gform_upload_path szűrővel. Ilyenkor ügyelj rá, hogy a webszervernek legyen olvasási és írási joga az új mappához. A fájlokat teljesen másik szerverre is áthelyezheted a gform_after_submission kapcsolóponttal.
Az .htaccess fájl
Szekció neve “Az .htaccess fájl”A Gravity Forms feltöltési mappájának gyökerében egy .htaccess fájl jön létre, amely a legtöbb szerveren megakadályozza, hogy a PHP-t futtassák az almappákban. A fájl a leggyakoribb szerverbeállításokra készül, ezért néha módosítani kell a gform_upload_root_htaccess_rules szűrővel. Ha egyáltalán nem szeretnéd, hogy a fájl létrejöjjön:
add_filter( 'gform_upload_root_htaccess_rules', '__return_false' );Ezt csak akkor használd, ha hibát látsz. Az .htaccess fájl a szervered védelmét szolgálja, ezért előbb kérdezd meg a szerver üzemeltetőjét, vagy fordulj a támogatáshoz.
A Fájlfeltöltés mező eltávolítása a szerkesztőből
Szekció neve “A Fájlfeltöltés mező eltávolítása a szerkesztőből”A Gravity Forms minden olyan felhasználónak engedi a Fájlfeltöltés mező felvételét, aki szerkesztheti az űrlapokat. Ha ki akarod venni a mezőt a mezőkönyvtárból, használd a gform_add_field_buttons szűrőt.
Fájlok tárolása a szerveren kívül
Szekció neve “Fájlok tárolása a szerveren kívül”Ha a feltöltött fájlok szerveren tartása nem megfelelő, több lehetőség van.
Dropbox kiegészítő. A feltöltött fájlokat közvetlenül a Dropboxba küldheti, a szerveren tárolás helyett vagy mellett. Beküldéskor a fájl először a szerverre kerül, és a beküldés a helyi fájlra mutat. A kiegészítő ezután aszinkron módon, feeden keresztül tölti át a fájlt. Ha az átvitel megerősítést nyert, a beküldésben a cím a Dropboxban lévő fájlra változik, a helyi fájl pedig törlődik.
Az aszinkron feldolgozás akár percekig is tarthat. Ha a háttérfeldolgozás elromlik vagy leáll, a feed soha nem fut le, és a fájl a szerveren marad. Megosztott tárhelyen vagy megfelelő tanúsítvány nélküli szervereken ez biztonsági figyelmeztetés.
Ha a szerveren való tárolást teljesen el akarod kerülni, használd a Dropbox egyéni alkalmazás kapcsolatot: a fájl az ügyfeled Dropbox-fiókjából közvetlenül a te Dropbox-fiókodba kerül, a szervered érintése nélkül.
Külső integráció. Például a Zapier segítségével a fájlokat Google Drive-ra vagy más felhőtárhelyre irányíthatod, az eredetiket pedig az átvitel után automatikusan törölheted a webszerverről.
Készült: