Jenga hesabu moja kutoka kwa kile kivinjari kinachopakua
Anza na kurasa za uwakilishaji: nyumbani, ukurasa wa kutua (landing), maelezo, utafutaji, kikapu, malipo (checkout), akaunti, na kampeni. Rekodi ziara za kwanza na za kurudi katika Chrome DevTools. Linganisha ushahidi wa kivinjari na tag manager, nyongeza za CMS, na utegemezi wa msimbo; mtazamo mmoja unaweza kukosa skiripti zilizochanganywa (injected).
Tumia safu moja kwa kila muuzaji au uunganishaji, si kwa URL pekee. Kamata domeni zinazowasiliana na je, inaweza kuongeza tagi. Mpa mmiliki wa kibiashara ambaye anaweza kutetea kusudi na kuidhinisha uondoaji. Pitia tena baada ya kampeni, mabadiliko ya muuzaji, utoaji wa templeti, na usanifu upya (redesign).
Hifadhi ukurasa, safari, muuzaji, domeni, maombi, ukubwa wa uhamisho, kazi kwenye main thread, na vigezo vya jaribio. Trace ya maabara (lab trace) ni ushahidi wa utambuzi, sio ahadi kwa kila mtumiaji.
Jumuisha kusudi, mmiliki, kategoria ya ridhaa, trigger, data inayofichuliwa, orden ya utegemezi, mbadala, na tarehe ya mapitio.
Fanya maamuzi ya kuweka, kuondoa, na bajeti yaonekane
Muulize kila mmiliki kinachoweza kuwa kibaya zaidi ikiwa uunganishaji ungepotea. Ikiwa ni fumbo, zima au uondoee. web.dev inapendekeza bajeti, kuepuka kazi rudufu, na kusafisha skiripti zilizorudishwa ambazo hazihitajiki.
Bajeti ni mlinzi wa timu, si kigezo cha ulimwengu mzima. Weka vibali kwa muuzaji na ukurasa kwa baiti, maombi, muda wa main-thread, na wakati wa upakiaji. Linganisha msingi (baseline) na mabadiliko. Muombe mmiliki abaki ndani ya kibali, aondoe gharama nyingine, au apate msamaha wa muda. Tumia safari zinazofanana na vipimo vinavyomlenga mtumiaji.
Weka tu utegemezi ulio na kusudi wazi, gharama iliyokubaliwa na mmiliki pamoja na matumizi ya data, na njia ya kushindwa inayokubalika.
Toza pikseli zilizopita muda, analytics rudufu, chat zisizotumika, majaribio yasiyotumika, na plug-in zilizokataliwa kupitia utoaji wa hatua.
Rekodi sababu, gharama, mthibitishaji, hatua za fidia, na tarehe ya mapitio.
Pakia mwishowe tu wakati kuchelewa ni salama
Chagua tabia ya upakiaji kwa makusudi. Skiripti ya nje ya kawaida bila async, defer, au tabia za module hupakuliwa na kutekelezwa kabla ya uchambuzi wa HTML kuendelea. Kwa async, kupakua kunafanyika kwa sambamba lakini utekelezaji unaanza inapopewa, hivyo orden haijahakikishwa. Kwa defer, skiripti za kawaida za nje zinaanza baada ya parsing na kwa orden ya hati, kabla ya DOMContentLoaded. Defer inafaa kwa skiripti zinazohitaji orden; si suluhisho la kila wakati.
Kwa chat isiyo muhimu, sehemu za kijamii, ramani, video, au interfaces za mapendekezo, onyesha sehemu nyepesi (placeholder) na pakia muuzaji baada ya kubofya au inapohitajika. Mfumo huu wa facade unaanza kwa udhibiti wako badala ya embed kamili. Hifadhi mwingiliano wa kibodi na uhifadhi nafasi. Usichelewesha msimbo unaohitajika kuhesabu bei, kuingia, kushughulikia malipo, kutoa ufikikaji muhimu, au kukidhi wajibu uliothibitishwa bila mbadala uliopitiwa.
Pakia mara moja kwa utegemezi wa kazi ya kwanza pekee; tumia post-parse kwa msimbo unaohitaji orden na interacción au visibility kwa embed zisizo za lazima.
Usiweka skiripti zinazo tegemeana kama async na kutegemea orden iendelee. Rekodi na jaribu mnyororo uliotangazwa.
Usifunge UI muhimu kwenye window load; embeds za wahusika wa tatu zinaweza kuichelewesha hata wakati async au defer zimetumika.
Fanya ridhaa (consent) kuwa lango, si wazo la upande wa pili
Panga kila muuzaji pamoja na wadau wa faragha na kisheria wanaofahamu nchi na mtiririko wa data. Kwa uunganishaji unaotegemea ridhaa, sanifu hali ya ridhaa kabla tag itumie data husika. Google inasema amri yake ya msingi ya ridhaa inapaswa kukimbia kabla ya amri za kipimo, na masasisho yafuataye mabadiliko ya uchaguzi. Mwongozo huu wa bidhaa si ushauri wa kisheria.
Jaribu ziara ya kwanza bila uchaguzi, kukubali, kukataa, na kuvuta ridhaa nyuma. Kagua kiolesura na mtandao: widget iliyofichwa haisemi kuwa hakuna ombi au kitambulisho kilitumwa. Ikiwa jukwaa la ridhaa linapakia kwa njia ya asynchronous, jaribu wakati. Hifadhi chaguo ipasavyo na tenda mabadiliko kwenye ukurasa wa sasa na ziara zijazo.
Usitegemee lebo ya muuzaji. Rekodi kwanini tag inahitajika, ni ya hiari, au inapigwa marufuku kwa eneo au safari na pata idhini.
Baada ya kuvuta ridhaa, thibitisha tag zisizo za lazima hazipaki au hazitumi data na hifadhi ushahidi wa jaribio.
Punguza eneo la uharibifu la msimbo usioudhibiti
OWASP inataja upotevu wa udhibiti juu ya mabadiliko ya mteja, utekelezaji wa msimbo bila mpangilio kwenye kivinjari, na kufichuliwa kwa data nyeti kama hatari kuu. Punguza upatikanaji wa uchapishaji wa tagi, pima HTML ya kawaida au uwezo wa msimbo wowote, na rekodi shamba za data-layer zilizoruhusiwa. Makubaliano ya muuzaji na tathmini iliyothibitishwa ya usalama inaweza kusaidia kwa uunganishaji wa hatari kubwa; hakuna mbadala kwa upimaji.
Subresource Integrity, au SRI, inaruhusu kivinjari kuthibitisha skiripti dhidi ya hash ya kriptografia. Inasaidia tu wakati rasilimali inaweza kupimwa (pinned) na utoaji wa cross-origin unaunga mkono CORS; W3C inasema kutumia SRI bila CORS ni hitilafu ya mantiki. Haifai kwa URL nyingi za muuzaji zinazobadilika. iframe sandbox inaweza kupunguza ufikiaji wa moja kwa moja kwa DOM ya mwenyeji na kuki, lakini inahitaji mapitio maalum. Mchezo wa malipo na mtiririko unaowajibisha usalama unastahili mapitio ya mtaalamu.
Pita tu shamba zilizoelezewa zinazohitajika kwa kusudi. Usifichue siri, data za malipo, au tabia za wateja zisizo za lazima.
SRI inathibitisha baiti, si matumizi ya data au maombi ya baadaye; upunguzaji wa mafadhaiko (isolation) si suluhisho la moja kwa moja.
Fanyeni mazoezi ya kushindwa kwa muuzaji kabla ya mteja kukutana nayo
Kwa kila muuzaji uliobaki, zuia domeni yake katika mazingira ya majaribio au kwa kizuizi cha ombi la kivinjari, kisha fanya safari. Jaribio pia majibu ya polepole na usanidi wa tag-manager bila uunganishaji. Thibitisha maudhui makuu, urambazaji, fomu, checkout, na upatikanaji wa akaunti vinafanya kazi kama ilivyokusudiwa. Hii inaonyesha mawazo kabla ya utoaji.
Tambua njia ya kurekebisha kabla ya tukio: nani anaweza kuzima tagi, kama bendera (flag) au kuchapisha tag-manager inahitajika, jinsi ya kurudisha hali, na jinsi ya kuthibitisha. SIU ni utayarishaji wa kujali wa upatikanaji na urejeshaji: tumia hesabu, bajeti, preflight, na mazoezi ya rollback kupunguza hatari za utegemezi. SIU haiwezi kudhibiti miundombinu ya muuzaji, kuhakikishia upatikanaji, au kuchukua nafasi ya mapitio.
Taja kinachobaki kinachotumika bila muuzaji, kile kinachoweza kudhoofika, mbadala, na ucheleweshaji wa juu kabla ya kuzima.
Ambatanisha trace ya kabla-na-baada, matokeo ya ridhaa, matokeo ya kuzuia muuzaji, na mmiliki wa rollback kwenye rekodi ya mabadiliko.
