Kial VPN ne igas vian evoluigan antaŭrigardon sekura por kunhavigi
VPN donas al testantoj itineron al via prototipo; ĝi ne igas la antaŭrigardon sekura. Difinu la publikon, la rulmedian, la datumojn kaj la kromefikojn antaŭ ol kunhavigi ĝin.
Meti prototipon malantaŭ VPN aspektas private, do la sola restanta demando aspektas kiel kiu ricevas la profilon. Tiu supozo malsukcesas laŭ specifa maniero: tunelo regas kiu povas atingi gastiganton, ne kion la gastiganto montras post kiam ili alvenos. La antaŭrigardo ankoraŭ rulas rulmedian, tenas datumojn kaj vokas integriĝojn, kiuj povas sendi veran retpoŝton aŭ skribi al vera datumbazo. Traktu la VPN kiel la antaŭan pordon kaj poste desegnu la ĉambron malantaŭ ĝi.
Itinero ne estas publiko
Enskribi testanton en la VPN respondas al precize unu demando: ĉu ĉi tiu aparato povas atingi la adreson? Ĝi diras nenion pri kiuj paĝoj, API-oj aŭ konzoloj tiu aparato rajtas uzi. Tiuj estas apartaj permesoj, kaj pordego, kiu konas nur adresojn, ne povas devigi ilin.
Skribu la kontrakton de la antaŭrigardo kiel mallongan liston: gastigantnomo, aŭskultanto, permesataj operacioj kaj kiu tenas ĉiun rolon. Poste kontrolu, ĉu la listo kongruas kun tio, kio estas fakte elmontrita.
Testanto, kiu povas malfermi la prototipon, ne bezonas la disfaldan konzolon, la administran paĝon de la datumbazo aŭ la hejman dosierujon de la programisto. Se la pordego donas subretan itineron, ĉio tio estas atingebla defaŭlte. Preferu itineron por ĉiu celo, aŭ metu la kromajn servojn malantaŭ ilia propra aŭtentikigo. Ambaŭ elektoj mallarĝigas kion ŝtelita profilo povas fari.
La rulmedio, kiun vi kunhavigas, estas parto de la kontrakto
Evoluiga servilo kun sencimigilo kaj aŭtomata reŝargo estas ilo por unu persono sur unu maŝino. La dokumentaro de kadroj estas rekta pri tio: la disfalda gvidilo de Flask diras, ke ĝia evoluiga servilo kaj sencimigilo ne estas por produktado, kaj ĝi ankaŭ konsideras privatajn aŭ unu-uzantajn servojn kiel produktadon. La sama rezonado validas por ĉiu kadro kun reŝargilo kaj interaga erarpaĝo. Komfortaj funkcioj estas dizajnitaj por mallongigi la buklon inter konservi dosieron kaj vidi ŝanĝon, ne por alfronti testanton, kiun vi ne regas.
Interaga spuro estas informa liko kaj, en kelkaj sencimigiloj, surfaco por plenumo de kodo. Tenu ĝin for de la antaŭrigardo, aŭ limigu la antaŭrigardon al konstruo, kiu ne povas ŝalti ĝin. Se testantoj bezonas diagnostikon, donu al ili protokolojn anstataŭ konzolon.
Aŭskultanto kun ĵokero estas la alia duono de ĉi tiu eraro. Ligi al ĉiu interfaco elmontras la servon en retoj, kiujn vi ne intencis, inkluzive la Wi-Fi de la kafejo.
Uzu unu-uzajn kontojn kaj datumojn sen veraj kromefikoj
Uzu kontojn kreitajn por testado kaj datumojn, kiuj ne povas hontigi iun. La danĝera parto malofte estas la vico en la datumbazo; ĝi estas la integriĝo malantaŭ la butono. Retpoŝto, pagoj, SMS, webhook-oj kaj dosiera eksporto ĉiuj atingas ekster la antaŭrigardon.
Listigu ĉiun eliran efikon, kiun la prototipo povas ekigi, poste direktu ĉiun al sablujo aŭ malŝaltu ĝin. Privata itinero ne igas vivan pagpunkton sendanĝera.
Produktadaj akreditaĵoj estas la sama problemo en alia formo. Antaŭrigardo, kiu heredas la produktadan API-ŝlosilon por ŝpari agordan tempon, estas produktada sistemo kun sencimiga fasado. Kreu limigitajn akreditaĵojn kun la plej malgrandaj utilaj permesoj. Rotaciu ilin kiam la antaŭrigardo finiĝos, ĉar revokita antaŭrigardo kun vivaj ŝlosiloj ankoraŭ vivas.
Kontrolu la paĝon, la rimedojn kaj la ingon
Paĝo, kiu bildiĝas, ne estas antaŭrigardo, kiu funkcias. La HTML povas ŝargiĝi dum rimedgastiganto, API aŭ WebSocket ankoraŭ montras al URL, kiun la testanto ne povas atingi. Ĉiu el tiuj estas aparta ero en la kontrakto.
De aprobita aparato, petu la paĝon kaj la plej grandan rimedon aparte:
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
Poste observu la retumilan konzolon dum reala interagado kaj konfirmu, ke la ingo de viva reŝargo konektiĝas. Se ĝi ne konektiĝas, la korekto estas intenca itinero por tiu finpunkto, ne regulo, kiu larĝiĝas ĝis la paĝo aspektas kompleta.
Retiru la antaŭrigardon laŭ dato, ne laŭ memoro
Donu al la antaŭrigardo posedanton kaj findaton en la momento, kiam vi kreas ĝin. Kiam la dato alvenos, forigu la eron, la identecojn de la testantoj kaj la provizorajn akreditaĵojn per tiu agordo, kiu posedas ilin. Forgesita antaŭrigardo estas la maniero, kiel privata prototipo fariĝas daŭre publika.
Kontrolu la retiron de ekstere: la gastigantnomo devus ĉesi solviĝi aŭ ĉesi respondi al neaprobitaj klientoj.
Konservu la fonton kaj la restaŭrajn notojn, sed ne la rezervan vojon. La testo de bona limo de antaŭrigardo estas enuiga: aprobita aparato povas fari la postulatajn agojn, kaj neaprobita identeco ne povas. La samo devas validi post kiam la tunelo estas malŝaltita. Tiu rezulto valoras pli ol VPN-ikono apud prototipo ruliĝanta kun ĉiuj evoluigaj funkcioj ŝaltitaj.