Tovább a tartalomhoz

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.

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 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-ea1cf844318d032fd7e8fa8w1dacdfbe

Minden 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.

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.

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 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.

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.

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:

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások