Att sätta en prototyp bakom en VPN känns privat, så den enda återstående frågan verkar vara vem som får profilen. Det antagandet fallerar på ett särskilt sätt: en tunnel styr vem som kan nå en värd, inte vad värden avslöjar när de väl är där. Förhandsvisningen kör fortfarande en körmiljö, håller data och anropar integrationer som kan skicka riktig e-post eller skriva till en riktig databas. Behandla VPN:en som ytterdörren och designa sedan rummet bakom den.

En väg är inte en publik

Att skriva in en testare i VPN:en svarar på exakt en fråga: kan den här enheten nå adressen? Det säger ingenting om vilka sidor, API:er eller konsoler enheten får använda. Det är separata behörigheter, och en gateway som bara känner till adresser kan inte upprätthålla dem.

Skriv förhandsvisningskontraktet som en kort lista: värdnamn, lyssnare, tillåtna operationer och vem som har varje roll. Kontrollera sedan att listan stämmer med det som faktiskt är exponerat.

En testare som kan öppna prototypen behöver inte utplaceringskonsolen, databasens administratörssida eller utvecklarens hemkatalog. Om gatewayen ger en subnätväg är allt detta nåbart som standard. Föredra en väg per destination, eller sätt tilläggstjänsterna bakom deras egen autentisering. Båda valen begränsar vad en stulen profil kan göra.

Körmiljön du delar är en del av kontraktet

En utvecklingsserver med felsökare och automatisk omladdning är ett verktyg för en person på en maskin. Ramverkens dokumentation är tydlig om detta: Flask:s utplaceringsguide säger att dess utvecklingsserver och felsökare inte är för produktion, och den räknar även privata tjänster eller tjänster för en användare som produktion. Samma resonemang gäller för varje ramverk med en omladdare och en interaktiv felsida. Bekvämlighetsfunktioner är gjorda för att förkorta loopen mellan att spara en fil och se en ändring, inte för att möta en testare du inte kontrollerar.

En interaktiv stacktrace är ett informationsläckage och, i vissa felsökare, en yta för kodkörning. Håll den borta från förhandsvisningen, eller begränsa förhandsvisningen till ett bygge som inte kan aktivera den. Om testare behöver diagnostik, ge dem loggar i stället för en konsol.

En lyssnare med jokertecken är den andra halvan av detta misstag. Bindning till alla gränssnitt exponerar tjänsten på nätverk du inte avsåg, inklusive kaféets Wi-Fi.

Använd engångskonton och data utan riktiga bieffekter

Använd konton skapade för test och data som inte kan förödmjuka någon. Den farliga delen är sällan databasraden; det är integrationen bakom knappen. E-post, betalningar, SMS, webhooks och filexport når alla utanför förhandsvisningen.

Lista varje utgående effekt som prototypen kan utlösa och rikta sedan var och en mot en sandlåda eller stäng av den. En privat väg gör inte en live-betalningsändpunkt ofarlig.

Produktionsuppgifter är samma problem i en annan form. En förhandsvisning som ärver produktions-API-nyckeln för att spara uppsättningstid är ett produktionssystem med ett felsökningsgränssnitt. Skapa avgränsade uppgifter med de minsta användbara behörigheterna. Rotera dem när förhandsvisningen slutar, eftersom en återkallad förhandsvisning med levande nycklar fortfarande lever.

Kontrollera sidan, tillgångarna och socketen

En sida som renderas är inte en förhandsvisning som fungerar. HTML:en kan laddas medan en tillgångsvärd, ett API eller en WebSocket fortfarande pekar på en URL som testaren inte kan nå. Var och en av dessa är en separat post i kontraktet.

Från en godkänd enhet, begär sidan och den största tillgången separat:

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

Titta sedan på webbläsarkonsolen under en riktig interaktion och bekräfta att socketen för live-omladdning ansluter. Om inte, är rättelsen en medveten väg för den ändpunkten, inte en regel som vidgas tills sidan ser komplett ut.

Dra tillbaka förhandsvisningen på ett datum, inte på minnet

Ge förhandsvisningen en ägare och ett slutdatum i samma stund som du skapar den. När datumet kommer, ta bort posten, testaridentiteterna och de tillfälliga uppgifterna genom den konfiguration som äger dem. En glömd förhandsvisning är hur en privat prototyp blir permanent offentlig.

Verifiera tillbakadragandet utifrån: värdnamnet bör sluta slås upp eller sluta svara icke-godkända klienter.

Behåll källan och återställningsanteckningarna, men inte reservvägen. Testet av en bra förhandsvisningsgräns är tråkigt: en godkänd enhet kan utföra de nödvändiga åtgärderna, och en icke-godkänd identitet kan inte. Samma sak måste gälla efter att tunneln stängts av. Det resultatet är värt mer än en VPN-ikon bredvid en prototyp som körs med alla utvecklingsfunktioner påslagna.

Relaterade artiklar