Umístění prototypu za VPN působí soukromě, takže jediná zbývající otázka vypadá jako kdo dostane profil. Tento předpoklad selhává konkrétním způsobem: tunel řídí, kdo se k hostiteli dostane, ne to, co hostitel po jejich příchodu odhalí. Náhled stále spouští běhové prostředí, drží data a volá integrace, které mohou odeslat skutečný e-mail nebo zapsat do skutečné databáze. Berte VPN jako vstupní dveře a pak navrhněte místnost za nimi.

Trasa není publikum

Zapsání testera do VPN odpovídá přesně na jednu otázku: dostane se toto zařízení na adresu? Nic neříká o tom, které stránky, API nebo konzole toto zařízení smí používat. To jsou samostatná oprávnění a brána, která zná jen adresy, je nedokáže vynutit.

Napište smlouvu náhledu jako krátký seznam: název hostitele, naslouchač, povolené operace a kdo drží každou roli. Potom zkontrolujte, zda seznam odpovídá tomu, co je skutečně vystaveno.

Tester, který umí otevřít prototyp, nepotřebuje nasazovací konzoli, administrační stránku databáze ani domovský adresář vývojáře. Pokud brána uděluje trasu do podsítě, je vše z toho ve výchozím stavu dostupné. Upřednostněte trasu pro každý cíl, nebo dejte doplňkové služby za jejich vlastní autentizaci. Každá z obou voleb zužuje, co může ukradený profil udělat.

Běhové prostředí, které sdílíte, je součástí smlouvy

Vývojový server s ladicím programem a automatickým načítáním je nástroj pro jednoho člověka na jednom počítači. Dokumentace frameworků je v tom jasná: průvodce nasazením Flaska říká, že jeho vývojový server a ladič nejsou pro produkci, a za produkci považuje i soukromé či jednouživatelské služby. Stejná úvaha platí pro každý framework s načítačem a interaktivní chybovou stránkou. Pohodlné funkce mají zkrátit smyčku mezi uložením souboru a uviděním změny, ne čelit testerovi, kterého neovládáte.

Interaktivní trasování je únik informací a v některých ladících programech plocha pro spuštění kódu. Držte ho mimo náhled, nebo náhled omezte na build, který ho nemůže zapnout. Pokud testeři potřebují diagnostiku, dejte jim logy místo konzole.

Naslouchač s divokou kartou je druhá polovina této chyby. Vázání na všechna rozhraní vystavuje službu sítím, které jste nezamýšleli, včetně Wi-Fi v kavárně.

Používejte jednorázové účty a data bez skutečných vedlejších účinků

Používejte účty vytvořené pro testování a data, která nikoho nemohou zahanbit. Nebezpečná část je málokdy řádek databáze; je to integrace za tlačítkem. E-mail, platby, SMS, webhooky a export souborů všechny dosahují mimo náhled.

Vyjmenujte každý odchozí efekt, který prototyp může vyvolat, a pak každý nasměrujte do sandboxu nebo ho vypněte. Soukromá trasa nedělá živý platební koncový bod neškodným.

Produkční přihlašovací údaje jsou stejný problém v jiné podobě. Náhled, který zdědí produkční klíč API, aby ušetřil čas na nastavení, je produkční systém s ladicím rozhraním. Vytvářejte omezené přihlašovací údaje s nejmenšími užitečnými oprávněními. Rotujte je, když náhled skončí, protože odvolaný náhled se živými klíči je stále živý.

Zkontrolujte stránku, prostředky a socket

Stránka, která se vykreslí, není náhled, který funguje. HTML se může načíst, zatímco hostitel prostředků, API nebo WebSocket stále ukazuje na URL, na kterou se tester nedostane. Každý z nich je samostatná položka ve smlouvě.

Ze schváleného zařízení si vyžádejte stránku a největší prostředek zvlášť:

curl -sS -o /dev/null -w "%{http_code}" https://preview.staging.example/
curl -sS -o /dev/null -w "%{http_code}" https://preview.staging.example/assets/app.js

Potom během skutečné interakce sledujte konzoli prohlížeče a potvrďte, že se socket živého načítání připojí. Pokud ne, opravou je záměrná trasa pro tento koncový bod, ne pravidlo, které se rozšiřuje, dokud stránka nevypadá kompletně.

Ukončete náhled k datu, ne podle paměti

Dejte náhledu vlastníka a datum konce ve chvíli, kdy ho vytvoříte. Až datum nastane, odstraňte záznam, identity testerů a dočasné přihlašovací údaje přes konfiguraci, která je vlastní. Zapomenutý náhled je způsob, jak se soukromý prototyp stane trvale veřejným.

Ověřte ukončení zvenčí: název hostitele by měl přestat být překládán nebo přestat odpovídat neschváleným klientům.

Uchovejte zdroj a poznámky k obnově, ale ne záložní cestu. Test dobré hranice náhledu je nudný: schválené zařízení umí požadované akce a neschválená identita ne. Totéž musí platit poté, co se tunel vypne. Ten výsledek má větší cenu než ikona VPN vedle prototypu běžícího se všemi zapnutými vývojovými funkcemi.

Související články