Blokeerige kolmanda osapoole skriptid mõne JavaScripti reaga

Kuidas hoida ära kolmandate osapoolte skriptide andmete kogumist, analüüside saatmist ja palju muud ilma kasutaja nõusolekuta.

Kohustustest loobumine: see artikkel räägib teadaolevalt ohutute skriptide blokeerimise kohta, näiteks analüütika - mis tähendab skripte kolmanda osapoole teenustest, mille te ise kaasate. Kolmandate osapoolte pahatahtlike soovimatute skriptide blokeerimiseks või saidiülese skriptimise rünnakute ärahoidmiseks peaksite alati kaaluma muude lahenduste kasutamist, näiteks lisama sisu-turbe-poliitika päise!
Kasutaja nõusoleku küsimine - ilma enne tähtaega jälgimata.

Kontekst

Snipsis võtame privaatsust väga tõsiselt. Nüüd, kui GDPR on jõus, otsustasime, et meie omanduses olevad veebisaidid ei tohiks kunagi koguda külastavate kasutajate kohta analüüse - kui nad ei luba seda vabatahtlikult.

Kahjuks võib kolmanda osapoole analüütika blokeerimine olla pisut keeruline. Probleem on selles, et need teenused on loodud viivitamatuks käivitamiseks ja et nad toetuvad väikestele minimeeritud koodilõikudele ja skriptimärkidele. Võite proovida minimeeritud koodi ise muuta, kuid see on natuke räpane ja raskesti hooldatav, eriti kui kasutate mitut teeki.

Nii et selle parema käsitlemiseks - automaatselt - lõime väikese avatud lähtekoodiga raamatukogu nimega Yett (huvitav tähendus), mis hoolitseb analüütikaskriptide täitmise blokeerimise eest. Teek võimaldab ka hiljem nende skriptide blokeeringu tühistada, kui kasutaja on selleks loa andnud.

Skriptide automaatne blokeerimine võib tunduda triviaalne, kuid tekstisisese skripti siltide blokeerimine pole tegelikult nii lihtne!

Nii leidsime teemasse süvenedes mõned tehnilised nüansid, mida arvasime, et oleks tore kogukonnaga jagada .

Eesmärk

Järgmised nõuded:

  • Kood tuleb enne mis tahes muud skripti sünkroonselt laadida ja käivitada;
  • Praegu pole sul aimugi, kuidas lõplik html välja näeb, kuna dokument pole veel täielikult laaditud;
  • Blokeeritud skripte ei tohi mingil viisil muuta (eesmärk on takistada neid käivitamast ilma oma koodi puudutamata);
  • Hiljem peaksime saama skriptide programmilise blokeeringu (lõpuks) blokeerida.

Allpool loetleme mõned tehnikad, mis tegelikult ka töötavad.

Eeltöö - MutationObserveri kasutamine skripti elementide sisestamise jälgimiseks

MutationObserver on sel juhul kasulik, kuna saate vaatleja dokumendielemendil enne tähtaega registreerida ja teid teavitatakse iga kord, kui DOM-i sõlmed sisestatakse, eriti skriptisõlmed.

Ainuüksi sellest muidugi ei piisa, kuid see on esimene samm meie eesmärgi poole.