BuildsByLuke Upload Vault – Secure File Uploads for Gravity Forms

Popis

Soubory, které uživatelé nahrávají prostřednictvím vašich formulářů Gravity Forms – životopisy, smlouvy, doklady totožnosti, lékařské dotazníky – jsou uloženy ve složce, jejíž jedinou ochranou je to, že její název je těžké uhodnout. Vlastní dokumentace Gravity Forms uvádí, že nahrané soubory jsou v bezpečí „pokud název složky pro daný formulář není sdílen veřejně.“

Adresy URL pro nahrávání se však neustále sdílejí: objevují se v e-mailech s oznámeními, exportovaných záznamech, historii prohlížečů, protokolech serverů a hlavičkách odkazujících stránek. Kdokoli, kdo se k takové adrese URL dostane, si může soubor stáhnout – bez přihlášení, bez ověření oprávnění, a to navždy.

Nástroj Upload Vault vám ukáže, co váš server skutečně poskytuje, a poté vám pomůže tento obsah omezit.

Zdarma – provést audit a zabezpečit

  • Audit zabezpečení — Nástroj Upload Vault odešle na váš vlastní server požadavek na vaše vlastní URL adresy pro nahrávání (tzv. loopback request) a jako ověřený fakt uvede, zda by cizí osoba disponující touto URL adresou obdržela daný soubor. Dále také kontroluje, zda složky pro nahrávání nezveřejňují seznam souborů, který lze procházet.
  • Ochrana — jedním kliknutím se zapíší pravidla pro odmítnutí přístupu (blok v souboru .htaccess ve složce pro nahrávání, bezpečně vedle všeho, co tam již je) a navíc se vytvoří zástupné soubory proti zveřejnění obsahu. Na serverech, které ignorují soubor .htaccess (nginx, IIS), vám Upload Vault zobrazí přesný úryvek kódu serveru a nadále poskytuje přesné informace, dokud nejsou přímé požadavky skutečně odmítnuty.
  • Stahování funguje i nadále — soubory jsou poskytovány prostřednictvím proxy serveru, který prověřuje oprávnění. Odkazy v zobrazeních záznamů a v e-mailech s oznámeními se automaticky přepisují na odkazy proxy serveru, takže ochrana nahraných souborů nijak nenaruší funkce, na které se spoléháte.
  • Objektivní hodnocení — audit nikdy neuvádí status „chráněno“, pokud nebylo zjištěno, že server odmítá přímé požadavky. Pokud váš web nedokáže odeslat požadavek na sebe samý (loopback), Upload Vault to jasně uvede, místo aby se pouštěl do dohadů.
  • Watchdog — plánovaný opakovaný audit v intervalu podle vašeho výběru (každou hodinu, dvakrát denně, denně nebo týdně), včetně e-mailového upozornění, jakmile dojde k novému odhalení složky, a navíc test stavu webu.
  • WP-CLI a REST, volně přístupnéwp upload-vault audit --format=json a koncový bod upload-vault/v1/status pouze pro čtení (pouze pro správce) pro vaše vlastní řídicí panely, monitorování a nástroje pro správu zařízení.
  • Formuláře, jejichž nahrané soubory mají být veřejně přístupné (např. vložené obrázky), lze nechat otevřené v jednotlivých složkách.

Pro

  • Odkazy na podepsané soubory s časově omezenou platností (1 hodina až 30 dní, volitelný limit stažení, možnost odvolání) — předávejte klientům soubory, aniž byste museli zakládat uživatele ve WordPressu.
  • Pravidla přístupu k formulářům: vyberte, které role mohou stahovat soubory jednotlivých formulářů.
  • Stáhnout záznam o přístupu – kdo co stáhl, kdy, z jaké IP adresy, zda byl přístup povolen či zamítnut – s možností exportu do formátu CSV.
  • Automatické mazání při uplynutí doby uchovávání: na základě maximálního stáří souboru s náhledem (užitečné pro zásady minimalizace dat).
  • Slack a webhooky vás upozorní, jakmile audit odhalí nové bezpečnostní riziko.

Upřímná omezení

  • Na serverech nginx/IIS se zadaná pravidla nemohou uplatnit sama o sobě – Upload Vault vám poskytne přesný kód a ověří jej, jakmile bude nainstalován. Do té doby se zobrazuje hlášení „nainstalováno, NEOVĚŘENO“, nikdy „chráněno“.
  • Pokud jsou vaše nahrané soubory přesměrovány na síť CDN nebo externí úložiště, jsou tyto kopie mimo dosah tohoto pluginu. Když URL adresa nahraného souboru na vašem vlastním hostingu přesměruje na jednu z těchto lokalit, Upload Vault se zastaví u přesměrování, místo aby za ním pokračoval, a označí danou složku jako neznámou, místo aby ji označil za exponovanou nebo chráněnou.
  • URL adresa, která již byla zveřejněna před aktivací ochrany, nemůže být odtajněna; ochrana zabrání serveru, aby ji od této chvíle nadále poskytoval.
  • Někteří poskytovatelé blokují požadavky typu loopback; audit v takovém případě namísto odhadů nahlásí, že byl narušen.
  • Žádný plugin nemůže zaručit bezpečnost ani zajistit, že web bude v souladu s jakýmikoli předpisy. Upload Vault vám pomáhá sledovat a omezovat přístup k souborům nahraným prostřednictvím Gravity Forms; odpovědnost za web však nadále nesou jeho správci.

Upload Vault je samostatný produkt společnosti Builds By Luke a není nijak spojen se společností Rocketgenius, Inc. („Gravity Forms“), ani touto společností podporován či sponzorován. Funguje i bez aktivního pluginu Gravity Forms – nahrané soubory přetrvávají i po odstranění pluginu, takže můžete zkontrolovat a zabezpečit adresář, který zůstal po deaktivované instalaci.

Externí služby

Samotný audit se nespojuje s žádnými externími zdroji. Odesílá HTTP požadavky z vašeho serveru na jeho vlastní veřejné URL adresy (loopback), aby zjistil, co server skutečně poskytuje. HTTP vrstva nesleduje přesměrování: Upload Vault sám vyhodnocuje každý krok a před odesláním požadavku znovu ověřuje cílovou adresu proti adrese vašeho webu, takže vaše URL, která přesměrovává mimo váš web, je zastavena a nahlášena, místo aby byla sledována. Obsah souborů nikdy neopouští váš web.

Společnost Freemius (freemius.com), která prodává a poskytuje licence na verzi Pro

Freemius se spouští ve čtyřech situacích. V každém z těchto případů je třeba kliknout. Nikdy se nespouští na pozadí.

  1. Pokud se přihlásíte na úvodní obrazovce (nebo spustíte zkušební verzi / aktivujete licenci). Na adresu api.freemius.com se odesílají: URL vaší stránky, verze WordPressu a PHP a e-mailová adresa účtu, pomocí kterého provádíte aktivaci. Přeskočení souhlasu je skvělá volba a plugin je i bez něj plně funkční.
  2. Pokud otevřete stránku „Upgrade“ v nabídce pluginu. Váš vlastní server (nikoli prohlížeč) požádá api.freemius.com o aktuální ceny tarifů a odešle adresu URL vašeho webu. K tomu dojde bez ohledu na to, kdo jste, a to i v případě, že jste přeskočili registraci — ale pouze při otevření této stránky. Samotná stránka nenačítá žádné skripty třetích stran; vše, co se na ní zobrazuje, pochází z vlastní složky tohoto pluginu. Skript pro stanovení cen, který je součástí platebního SDK, dříve na této stránce vkládal do wp-adminu skript Google Analytics a skript pro vzdálenou platbu; tato verze oba skripty odstranila, stejně jako zbývající vzdálené odkazy SDK (všechny úpravy jsou uvedeny níže v části „Zdrojový kód“).
  3. Pokud otevřete stránku „Kontaktujte nás“, jedná se o formulář podpory hostovaný společností Freemius (wp.freemius.com). Odkaz obsahuje adresu URL vašeho webu a adresu URL pro přihlášení do WordPressu, aby formulář věděl, o kterém webu píšete.
  4. Pokud kliknete na některý z plánů s cílem provést nákup, budete přesměrováni na platební stránku provozovanou společností Freemius (checkout.freemius.com). Tato stránka obdrží URL vaší stránky, název stránky, verze WordPressu a PHP a e-mailovou adresu správce WordPressu (předvyplněnou; tato adresa se odešle bez ohledu na to, zda nákup dokončíte, či nikoli). Freemius je oficiálním prodejcem. Jejich platební stránka načítá vlastní skripty třetích stran (v době psaní tohoto textu: Stripe, PayPal, Google Tag Manager a vlastní soubory společnosti Freemius); tento seznam nemáme pod kontrolou. Pokud na žádný tarif nekliknete, nic z toho se nenačte.

Podmínky: https://freemius.com/terms/ — Ochrana osobních údajů: https://freemius.com/privacy/

Instalace, aktivace, přeskočení souhlasu, všechny naplánované audity, používání všech obrazovek, deaktivace (dialogové okno s potvrzením deaktivace SDK je v této verzi vypnuté, takže deaktivace proběhne jedním kliknutím a neodešle žádné údaje) i aktualizační cyklus WordPressu – to vše proběhne bez jakéhokoli kontaktu se společností Freemius. Bezplatné aktualizace přicházejí z WordPress.org stejně jako u jakéhokoli jiného pluginu.

Slack nebo vlastní webhook (verze Pro, volitelné)
Pokud nakonfigurujete URL pro Slack nebo obecný webhook, Upload Vault odešle na tuto URL krátké upozornění (URL webu, výsledek, názvy dotčených složek, časové razítko — nikdy obsah souborů), jakmile audit zjistí nové riziko. Dokud sami nezadáte URL, nic se neodešle. Pokud používáte webhook pro Slack, prostudujte si podmínky služby Slack a zásady ochrany osobních údajů.

Zdrojový kód

Vlastní soubory PHP a JavaScript tohoto pluginu jsou v složce pluginu v neminifikované a čitelné podobě. Jedinou výjimkou je platební SDK třetí strany v adresáři vendor/freemius/, které je dodáváno v předem minifikované podobě; jeho zdrojový kód a nástroje pro sestavení jsou veřejně dostupné:

  • Freemius WordPress SDK: https://github.com/Freemius/wordpress-sdk
  • Obrazovka s cenami na adrese vendor/freemius/assets/js/pricing/freemius-pricing.js: https://github.com/Freemius/pricing-page

Tento plugin obsahuje čtyři záměrné úpravy tohoto SDK (všechny se nacházejí v assets/js/pricing/freemius-pricing.js, přičemž všechny odstraňují vzdálené odkazy z wp-admin): metoda appendScripts() je vyprázdněna (vkládala Google Analytics + checkout.js), sledovač zobrazení stránek GA je odstraněn, vzdálený načítací GIF je nahrazen vloženým data-URI a fotografie s referencemi jsou nahrazeny dodaným zástupným obrázkem. Tři z nich mají na stránce s opravami komentář „Upload Vault:“.

Snímky obrazovky

Instalace

  1. Nainstalujte a aktivujte plugin.
  2. Otevřete Upload Vault Exposure Audit a spusťte první audit.
  3. Pokud jsou složky vystaveny, klikněte na Chránit nahrávané soubory a poté znovu zkontrolujte výsledek – stav se změní na „Chráněno“ pouze v případě, že bylo zjištěno, že váš server odmítá přímé požadavky (v případě nginx/IIS nejprve přidejte zobrazený úryvek kódu).

Nejčastější dotazy

Je nutné, aby byl modul Gravity Forms aktivní?

Ne. Funkce auditu, ochrany a správy proxy pracují přímo v nahrávacím adresáři gravity_forms, který přetrvává i po deaktivaci pluginu pro formuláře. Při aktivním pluginu Gravity Forms navíc získáte názvy formulářů a automatické přepisování odkazů v zobrazeních záznamů a v oznamovacích e-mailech.

Je tam napsáno „Pravidla nainstalována, NEověřena“ – je to chyba?

Ne — to je upřímná informace od pluginu. Váš server (obvykle nginx nebo IIS) ignoruje soubory .htaccess, takže pravidla pro odepření přístupu nemohou sama o sobě fungovat. Stránka auditu zobrazuje přesný úryvek kódu serveru; jakmile je tento úryvek nainstalován a server odmítá přímé požadavky, změní se stav na „Chráněno“.

Způsobí ochrana nahraných souborů nefunkčnost odkazů, které můj tým již používá?

Zobrazení záznamů a e-maily s oznámením o nových záznamech se automaticky přepnou na odkazy přes proxy (pokud je aktivní plugin Gravity Forms). Přímé URL adresy ve starých e-mailech přestanou fungovat pro neautorizované uživatele – o to právě jde –, ale každý přihlášený uživatel s oprávněním k prohlížení záznamů získá stejný soubor prostřednictvím obrazovky „Soubory“ nebo v zobrazení záznamu.

Změní to nebo přesune moje nahrané soubory?

Ne. Vytvoří pouze: značku v souboru .htaccess ve složce pro nahrávání (odstraněnou při zrušení ochrany/odinstalaci), prázdné zástupné symboly index.html k zamezení zobrazení obsahu adresáře a vlastní databázovou tabulku. Soubory nejsou nikdy přesouvány, přejmenovávány ani upravovány. Funkce uchovávání dat v rámci verze Pro maže soubory pouze v případě, že ji výslovně povolíte a nastavíte limity pro jednotlivé formuláře.

Co se stane při odinstalaci?

Upload Vault odstraní svá pravidla pro odmítnutí (čímž obnoví výchozí chování Gravity Forms), vymaže své databázové tabulky (uvgf_files a uvgf_shares/uvgf_log, pokud byla použita verze Pro) a smaže své nastavení. Prázdné zástupné symboly index.html zůstanou na svém místě (jsou neaktivní).

Je tento plugin oficiálním doplňkem pro Gravity Forms?

Ne. Upload Vault je samostatný produkt, který není spojen se společností Rocketgenius, Inc., ani není touto společností podporován či sponzorován.

Recenze

Pro tento plugin nejsou žádné recenze.

Autoři

BuildsByLuke Upload Vault – Secure File Uploads for Gravity Forms je otevřený software. Následující lidé přispěli k vývoji tohoto pluginu.

Spolupracovníci

Plugin „BuildsByLuke Upload Vault – Secure File Uploads for Gravity Forms“ byl přeložen do 1 jazyku. Děkujeme všem překladatelům za jejich pomoc.

Přeložte “BuildsByLuke Upload Vault – Secure File Uploads for Gravity Forms” do svého jazyka.

Zajímá vás vývoj?

Prohledejte kód, podívejte se do SVN repozitáře, nebo se přihlaste k odběru protokolu vývoje pomocí RSS.

Přehled změn

1.1.1

  • První veřejné vydání.