# Feltöltött fájlok védelme

> Hogyan akadályozd meg, hogy a látogatók böngészni tudják a fájlfeltöltő mezővel feltöltött fájlok mappáját.

Ha a vásárló a **Fájlfeltöltés** mezővel tölt fel fájlt, az a szerveren a `wp-content/uploads/product_addons_uploads/` mappába kerül. Ez a fejezet azt mutatja meg, hogyan tilthatod le, hogy a látogatók megnézzék a mappa tartalmát fájllistaként.

## Mielőtt hozzákezdesz

- Szükséged van a szerver beállításaihoz vagy a tárhely vezérlőpultjához. Felügyelt vagy megosztott tárhelyen lehet, hogy nincs ilyen hozzáférésed, ilyenkor kérd meg a tárhelyszolgáltatót (lásd lent).
- Szerkesztés előtt készíts mentést a módosítandó konfigurációs fájlról.
- Ha nem tudod, milyen webszervert használ az oldalad, kérdezd meg a tárhelyszolgáltatót. A leggyakoribbak az Nginx, az Apache és a LiteSpeed.

A legtöbb webszerver alapból tiltja a könyvtárlistázást, ezért sok webshop már védett, és nem kell semmit módosítani. Az alábbi lépések ettől függetlenül biztonságosan elvégezhetők megerősítésként. Ha előbb ellenőriznéd, hogy kell-e a védelem, ugorj az [ellenőrzéshez](#ellenőrzés).

## Mi a könyvtárlistázás?

Egyes webszerverek fájllistát mutatnak, ha valaki olyan mappa címét nyitja meg, amelyben nincs index oldal. Ezt hívják könyvtárlistázásnak (auto-indexing). Ha a feltöltések mappájában be van kapcsolva, bárki, aki ismeri a mappa címét, láthatja és megnyithatja a benne lévő fájlokat. A listázás tiltása minden olyan webshopnál alapvető megerősítés, amely fájlfeltöltést fogad.

A bővítmény a fő feltöltési mappára már alkalmaz egy alapvédelmet. Az alábbi szerverbeállítások ugyanezt az egész mappára kiterjesztik, a régebbi fájlokra és a vásárlónkénti almappákra is.

> **Figyelem**
>
> Ez a védelem a mappa böngészését akadályozza meg, az egyes fájlokat nem teszi priváttá. Aki ismeri egy feltöltött fájl pontos hivatkozását, az megnyithatja. Ha bizalmas dokumentumokat gyűjtesz feltöltő mezővel, ne tekintsd a kiegészítők feltöltéseit privát tárhelynek.

## Nginx

Add hozzá a következő blokkot az oldal szerverkonfigurációjához, a `server` blokk vége felé:

```nginx
location ~* /wp-content/uploads/product_addons_uploads/ {
    autoindex off;
}
```

A változtatás életbe léptetéséhez töltsd újra az Nginxet, például az `nginx -s reload` paranccsal vagy a tárhely vezérlőpultján keresztül. Az Nginx alapból tiltja a listázást, így a blokk akkor is rögzíti a tiltást erre a mappára, ha a szerver más részének beállítása bekapcsolná.

Az Nginx konfigurációjának szerkesztéséhez szerverhozzáférés kell. Felügyelt Nginx-tárhelyen kérd meg a szolgáltatót, hogy vegye fel a fenti blokkot.

## Apache és LiteSpeed

Szerkeszd (vagy hozd létre) a `wp-content/uploads/product_addons_uploads/` mappában a `.htaccess` fájlt, és add hozzá ezt a sort:

```apache
Options -Indexes
```

A beállítás a mappára és az összes almappájára érvényes, ezért egyetlen `.htaccess` fájl lefedi az összes feltöltött fájlt. A LiteSpeed ugyanúgy olvassa a `.htaccess` fájlt, mint az Apache, így ez az egy lépés mindkettőre elég.

Ha a sor hozzáadása után az oldal `500 Internal Server Error` hibát ad, a tárhelyed nem engedi ezt a beállítást a `.htaccess` fájlban. Töröld ki az `Options -Indexes` sort, hogy az oldal újra működjön, majd válassz az alábbiak közül:

- A cPanelben nyisd meg az **Indexes** (vagy **Directory Privacy**) eszközt, tallózz a `product_addons_uploads` mappához, és állítsd „no indexing” értékre. Ez ugyanazt éri el a `.htaccess` szerkesztése nélkül.
- Kérd meg a tárhelyszolgáltatót, hogy a saját kezelésű szerverkonfigurációban kapcsolja ki a listázást erre a mappára.

## Felügyelt tárhely

Ha nem tudod szerkeszteni a szerverkonfigurációt, vagy nem biztos, hogy milyen webszervert használsz, küldd el a tárhelyszolgáltatónak ezt a kérést:

> Kérem, kapcsolják ki a könyvtárlistázást (auto-indexing) a `wp-content/uploads/product_addons_uploads/` mappára és az almappáira. A mappa 403-as hibát vagy üres oldalt adjon fájllista helyett.

## Ellenőrzés

1. Adj le egy próbarendelést, amelyben van fájlfeltöltő kiegészítő, és fejezd be a fizetést.
2. Nyisd meg a rendelést a WooCommerce-ben, vagy használd a rendelés-visszaigazoló e-mailt, és keresd meg a feltöltött fájl hivatkozását.
3. Másold ki a fájl címét, és töröld le a végéről a fájlnevet, hogy csak a mappa címe maradjon (perjellel végződjön).
4. Nyisd meg a mappa címét böngészőben. Üres oldalt, „Forbidden” oldalt vagy 403-as üzenetet kell látnod, nem fájllistát.
5. Győződj meg róla, hogy a feltöltött fájl a teljes címén továbbra is megnyílik, és a webshop hiba nélkül, `500`-as hiba nélkül betöltődik.

Ha a 4. lépésben fájllistát látsz, a könyvtárlistázás még be van kapcsolva. Nézd át a webszerverednek megfelelő fenti beállítást, vagy kérd meg a tárhelyszolgáltatót, hogy alkalmazza.
