Kvifor gjer ikkje ein VPN utviklarførehandsvisinga di trygg å dela
Eit VPN gjev testarar ei rute til prototypen din; det gjer ikkje førehandsvisinga trygg. Avgrens publikum, køyretidsmiljø, data og biverknader før du deler ho.
Å setja ein prototype bak eit VPN kjennest privat, så det einaste spørsmålet som står att ser ut til å vera kven som får profilen. Den føresetnaden sviktar på ein bestemd måte: ein tunnel styrer kven som kan nå ein vert, ikkje kva verten avdekkjer når dei fyrst er der. Førehandsvisinga køyrer framleis eit køyretidsmiljø, held data og kallar integrasjonar som kan senda ekte e-post eller skriva til ein ekte database. Behandle VPN-et som hovuddøra og design deretter rommet bak henne.
Ei rute er ikkje eit publikum
Å melda ein testar inn i VPN-et svarar på nøyaktig eitt spørsmål: kan denne eininga nå adressa? Det seier ingenting om kva sider, API-ar eller konsollar eininga får bruka. Det er separate løyve, og ein gateway som berre kjenner adresser kan ikkje handheva dei.
Skriv førehandsvisekontrakten som ei kort liste: vertsnamn, lyttar, tillatne operasjonar og kven som har kvar rolle. Sjekk deretter at lista stemmer med det som faktisk er eksponert.
Ein testar som kan opna prototypen treng ikkje utrullingskonsollen, administrasjonssida for databasen eller heimekatalogen til utviklaren. Viss gatewayen gjev ei subnett-rute, er alt dette tilgjengeleg som standard. Føretrekk ei rute per destinasjon, eller set tilleggstenestene bak eigen autentisering. Begge vala snevrar inn kva ein stolen profil kan gjera.
Køyretidsmiljøet du deler er ein del av kontrakten
Ein utviklingsserver med feilsøkjar og automatisk omlasting er eit verktøy for éin person på éi maskin. Rammeverksdokumentasjonen er tydeleg på dette: utrullingsrettleiinga til Flask seier at utviklingsserveren og feilsøkjaren ikkje er for produksjon, og ho reknar private eller einskildbrukar-tenester som produksjon òg. Same resonnementet gjeld for alle rammeverk med ein omlastar og ei interaktiv feilside. Komfortfunksjonar er laga for å korta inn løkka mellom å lagra ei fil og sjå ei endring, ikkje for å møta ein testar du ikkje kontrollerer.
Ein interaktiv stacktrace er ein informasjonslekkasje og, i nokre feilsøkjarar, ein flate for kodekøyring. Hald han unna førehandsvisinga, eller avgrens førehandsvisinga til ein bygg som ikkje kan slå han på. Viss testarane treng diagnostikk, gje dei loggar i staden for ein konsoll.
Ein lyttar med jokerteikn er den andre halvdelen av denne feilen. Binding til alle grensesnitt eksponerer tenesta på nettverk du ikkje meinte, inkludert Wi-Fi-en på kafeen.
Bruk eingongskontoar og data utan ekte biverknader
Bruk kontoar laga for testing og data som ikkje kan gjera nokon forlegne. Den farlege delen er sjeldan databaserada; det er integrasjonen bak knappen. E-post, betalingar, SMS, webhooks og fileksport når alle utanfor førehandsvisinga.
List opp kvar utgåande effekt prototypen kan utløysa, og peik deretter kvar av dei mot ein sandkasse eller slå han av. Ei privat rute gjer ikkje eit live betalingsendepunkt ufarleg.
Produksjonslegitimasjon er same problem i ei anna form. Ei førehandsvising som arvar produksjons-API-nøkkelen for å spara oppsetjingstid er eit produksjonssystem med eit feilsøkingsgrensesnitt. Lag avgrensa legitimasjonar med dei minste nyttige løyva. Roter dei når førehandsvisinga er over, fordi ei tilbakekalla førehandsvising med levande nøklar framleis er levande.
Sjekk sida, ressursane og sockelen
Ei side som blir rendra er ikkje ei førehandsvising som fungerer. HTML-en kan lastast medan ein ressursvert, eit API eller ein WebSocket framleis peikar på ein URL testaren ikkje kan nå. Kvar av desse er eit eige oppføring i kontrakten.
Frå ei godkjend eining, be om sida og den største ressursen kvar for seg:
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
Sjå deretter på nettlesarkonsollen under ein ekte interaksjon og stadfest at sockelen for live-omlasting koplar seg til. Viss ikkje, er rettinga ei medviten rute for det endepunktet, ikkje ei regel som utvidar seg til sida ser komplett ut.
Trekk førehandsvisinga tilbake på ein dato, ikkje på minne
Gje førehandsvisinga ein eigar og ein sluttdato i det augneblinken du opprettar ho. Når datoen kjem, fjern oppføringa, testaridentitetane og dei mellombelse legitimasjonane gjennom den konfigurasjonen som eig dei. Ei gløymd førehandsvising er korleis ein privat prototype blir ein permanent offentleg.
Stadfest tilbaketrekkinga utanfrå: vertsnamnet skal slutta å slå opp eller slutta å svara ikkje-godkjende klientar.
Hald på kjelda og gjenopprettingsnotata, men ikkje reservevegen. Testen på ei god førehandsvisinggrense er keisam: ei godkjend eining kan utføra dei naudsynlege handlingane, og ein ikkje-godkjend identitet kan ikkje. Det same må gjelda etter at tunnelen er slått av. Det resultatet er verdt meir enn eit VPN-ikon ved sida av ein prototype som køyrer med alle utviklingsfunksjonar på.