Estä kolmansien osapuolien kirjoitukset muutamalla rivillä JavaScriptiä

Kuinka estää kolmansien osapuolien komentosarjoja keräämästä tietoja, lähettämästä analytiikkaa ja muuta ilman käyttäjän suostumusta.

Vastuuvapauslauseke: Tämä artikkeli koskee turvalliseksi tunnistettujen skriptien estämistä, kuten analytiikka - tarkoittamalla skriptejä kolmansien osapuolien palveluista, jotka itse sisällytät. Estä haitalliset ei-toivotut kolmansien osapuolien komentosarjat tai estävät sivustojen välisten komentosarjojen hyökkäykset sinun tulisi aina harkita muiden ratkaisujen käyttöä, kuten lisätä sisältö-tietoturva-politiikan otsikko!
Käyttäjän suostumuksen pyytäminen - ilman seurantaa etukäteen.

Konteksti

Täällä Snipsissä otamme yksityisyyttä erittäin vakavasti. Nyt kun GDPR on voimassa, olemme päättäneet, että omistamillamme verkkosivustoilla ei tulisi koskaan kerätä analyyttisiä tietoja vierailevista käyttäjistä - elleivät he ole ilmoittautuneet vapaaehtoisesti.

Valitettavasti kolmannen osapuolen analyysien estäminen voi olla hieman hankala. Ongelmana on, että nämä palvelut on rakennettu aloittamaan heti, ja että ne luottavat pieniin minimoituihin koodinpätkyihin ja komentotunnisteisiin. Voit yrittää muokata pienikoodia itse, mutta se on vähän sotkuinen ja vaikea ylläpitää, varsinkin jos käytät useita kirjastoja.

Joten käsitelläksemme tätä paremmin - automaattisesti - loimme pienen avoimen lähdekoodin kirjaston nimeltä Yett (mielenkiintoinen merkitys), joka huolehtii analytiikkakomentosarjojen suorituksen estämisestä. Kirjaston avulla voit myös poistaa näiden komentosarjojen myöhemmän eston, kun käyttäjä on valinnut sen.

Komentosarjojen automaattinen estäminen voi tuntua triviaaliselta - mutta inline-komentosarjojen tunnisteiden estäminen ei oikeastaan ​​ole niin helppoa!

Joten tutkiessamme aihetta löysimme joitain teknisiä hienoja yksityiskohtia, jotka mielestämme olisi mukavaa jakaa yhteisölle .

Maali

Tässä on vaatimukset:

  • Koodi on ladattava ja suoritettava synkronoidusti ennen kaikkia muita komentosarjoja;
  • Tässä vaiheessa sinulla ei ole aavistustakaan siitä, kuinka lopullinen html näyttää, koska asiakirjaa ei ole vielä ladattu täyteen.
  • Estettyjä skriptejä ei saa muuttaa millään tavalla (tavoitteena on estää niitä suorittamasta koskematta omaa koodiaan);
  • Meidän pitäisi pystyä (lopulta) poistamaan skriptien estäminen ohjelmallisesti myöhemmin.

Alla luetellaan muutamia tekniikoita, jotka todella toimivat.

Pohjatyö - MutationObserverin käyttäminen komentosarjan elementtien lisäyksen tarkkailemiseen

MutationObserver on tässä tapauksessa hyödyllinen, koska voit rekisteröidä tarkkailijan asiakirjaelementissä etukäteen ja saada ilmoituksen, kun DOM-solmut, etenkin komentosarjasolmut, lisätään.

Pelkästään tämä ei tietenkään riitä, mutta se on ensimmäinen askel kohti päämääriämme.