Yandex Metrica: webvisor fungerer ikke. Bitrix: Et forbud mot å vise en side i en ramme er satt

"Webvisor" Er et av Yandex-måleverktøyene som lar deg studere brukeratferd på nettstedet ved å animere brukerhandlinger på sidene der telleren er installert. På dette tidspunktet bruker dette systemet rammer, som i noen tilfeller kan oppstå problemer med. Problemet er som følger: webvieweren slutter å fungere i beregningen, og når du prøver å se en oversikt over brukeratferd, kan det vises en feil med teksten - " Tellerkoden ble ikke funnet på siden, eller siden er forbudt å vises i en ramme". For å løse dette problemet må du gjøre litt manipulasjon for å finne ut hva problemet er, og problemet kan være flere steder.

Sjekk om måleren er tilkoblet
Kanskje, av en eller annen grunn, dukket ikke tellerkoden opp på sidene på nettstedet ditt, så du må begynne med det vanligste - se etter en tilkoblet teller på sidene dine. Åpne kildekoden og se om tellerkoden er tilkoblet.

Vi sjekker om det er noen problemer på din side
Det hender at problemet kan være på klientsiden, for eksempel kan det blokkeres av nettlesertillegg, antivirus og andre programmer. Sjekker tilgang til metrika.yandex.ru, mc.yandex.ru, * .yandex.net, hender det at tilgang kan dekkes av brannmurer på bedriftsnettverksnivå, dette punktet bør også tas i betraktning.

Sjekker om det er forbud på serversiden
Av sikkerhetsgrunner blokkerer mange webservere muligheten til å vise nettstedssider i rammer. Det frarådes sterkt å fjerne beskyttelsen, og som en løsning kan du la muligheten til å bruke rammer bare for Yandex-målinger, og vi vil snakke om dette videre.

Hvordan forstå om serveren blokkerer rammer eller ikke?
For å finne ut om det er et forbud på nettserversiden, må vi se svarhodene på nettstedet ditt. Du kan se svarhodene ved å åpne utviklerkonsollen i en nettleser (Ctrl + F12), eller ved å bruke en nettjeneste, for eksempel denne.

Etter at svaroverskriftene vises, er vi interessert i tilstedeværelsen av linjen:
X-Frame-alternativer: SAMEORIGIN

Denne linjen betyr at visning i rammer kun er tillatt fra den nåværende verten, noe som betyr at det ikke kan gjøres fra noen andre, og webvisoren i dette tilfellet er utestengt. Som regel sendes slike overskrifter av webserveren, og vi må gjøre et lite unntak for visning i rammer for Yandex-målinger. De fleste webservere kjører på Nginx, av denne grunn vil vi justere konfigurasjonen for den virtuelle verten litt.

Tillater Web Visor i Nginx
Siden Nginx allerede sender en header for alle virtuelle verter, må vi finne konfigurasjonsfilen der denne headeren er koblet fra. Som standard, på Linux, er konfigurasjonsfiler plassert i katalogen / etc / nginx /, og filnavnene slutter på * .conf. Du må finne filen som overskriften er skrevet i, samt kommentere den:

# add_header X-Frame-Options SAMEORIGIN;

Etter det, i innstillingene til den virtuelle verten, skriv en liten regel som vil forby alle forsøk på å bruke rammer på tredjeparts domener bortsett fra domenenavnet * .webvisor.com.

Plassering / (sett $ frame_options ""; if ($ http_referer! ~ "^ Https?: \ / \ / ([^ \ /] + \.)? (Dittdomene \ .com | webvisor \ .com) \ /") (sett $ frame_options "SAMEORIGIN";) add_header X-Frame-Options $ frame_options; ...)

Vær oppmerksom på at et underdomene legges til unntaket, hvor dittdomene.com er indikert - du registrerer ditt eget. Etter å ha gjort endringer i konfigurasjonsfilen, må du starte Nginx på nytt for at innstillingene skal tre i kraft. Ved bruk av andre servere bør de også konfigureres slik at X-Frame-Options-headeren ikke sendes til webvieweren.
Hvis du sender overskrifter gjennom skript, kan du bruke et regulært uttrykk for å sjekke:

^ https?: \ / \ / ([^ \ /] + \.)? (dittdomene \ .com | webvisor \ .com) \ /

Dermed vil muligheten for å bruke nettvisiret forbli for nettstedet ditt, og du trenger ikke med vilje å la denne delen være ubeskyttet.

Et utrolig interessant stykke nettvisir fra Yandex. Bare noen få linjer med kode lagt til nettstedet, og du kan se hvordan den besøkende leser nettstedet ditt, hvor han klikket, hvordan han beveget seg med musen, hvordan siden rullet. Hva som skjøv ham bort og hva som tiltrakk seg oppmerksomhet.

Selve telleren kan lages her:

og beskrivelsen og hjelpen er her:

Et eksempel på en video der du kan se nøyaktig hvordan brukeren oppfører seg på nettstedet ditt.

Ærlig talt, da jeg først begynte å bruke webviewer, brukte jeg et par dager på å se på hva brukerne gjør på nettstedet mitt, hva de leser, hvilke deler av innholdet de ikke liker.

Takket være webvisoren skrev jeg om noe av innholdet, og siden begynte å gi minst 70 % flere målrettede handlinger (på den siden var det en tilbakeringing), det vil si nesten dobbelt så mye avkastning på det samme materialet.

Legg merke til den fargede musepekeren, brukerbevegelseslinjer og hvordan skjermen ruller (fra og med 24. sekund). Alt dette gjøres av brukeren, og nettstedets eier kan deretter observere det i innlegget.

Men når du bruker webviewer, kan det oppstå problemer.

Og jeg vil fortelle deg om deres løsning her, siden det ikke er noen normal løsning i nettverket.

Tellerkoden må settes på siden

I dette tilfellet må du gå til tellerinnstillingene, sette en hake ved siden av ordet "Webvisor", og etter det - vær sikker! - trykk på lagre-knappen. Uten å klikke på denne knappen vil du ikke kunne få tilgang til registrene over brukeratferd.

Det er noe galt med denne siden. Vi kan ikke gjengi besøket på den. Mulige årsaker: Tellerkode ikke angitt

Det er satt et forbud mot å vise en side i en ramme

I dette tilfellet må du deaktivere nettleserutvidelser og plugins, siden det mest sannsynlig er de som er problemet.

For Google Chrome gjøres dette på følgende måte:

Åpne Chrome-menyen i nettleserens verktøylinje og klikk på Verktøy.

Velg utvidelser.

På siden som åpnes fjerner du merket for "Aktivert" ved siden av utvidelsen du vil deaktivere midlertidig.

Deaktiverte utvidelser kan aktiveres på nytt i listen over utvidelser når som helst. Du må kanskje oppdatere siden for utvidelsene du nettopp har aktivert for å fungere.

Deaktiverte utvidelser, startet nettleseren på nytt og spilte brukerhandlinger på nytt. Hvis alt er bra, er det bare å slå på alle utvidelser igjen.

Med vennlig hilsen, Alexander Krylov

p.s. Man bør huske på at selve webvisortjenesten fra tid til annen blir utilgjengelig. I mitt minne, første gang var det merkbart i slutten av 2014, og andre gang - i slutten av januar 2015

For å gå tilbake til temaet beskyttelse av innholdet på nettstedet, må vi også nevne beskyttelsen mot å se nettstedet i rammen til et annet nettsted. I tillegg til at ingen vil kunne bruke innholdet ditt på denne måten, vil dette til en viss grad bidra til å beskytte mot DDoS-angrep når en skjult iframe med lenke til det angrepne nettstedet plasseres på et nettsted med høy trafikk. Ved å besøke hovedsiden åpner brukere, mot deres vilje, også offersiden, og skaper en enorm belastning på den. Slike hendelser har allerede skjedd ved flere anledninger. I denne artikkelen har jeg prøvd å sette sammen forskjellige måter å beskytte nettsteder mot å bli innrammet og forskjellige måter å overvinne dem.

Den første beskyttelsesmetoden er basert på JavaScript. Essensen koker ned til det faktum at det øverste vinduet er sjekket for den åpne siden, hvis de ikke stemmer overens, er siden åpen i en ramme. Hvis en slik urett blir funnet, blir nettleseren omdirigert til en annen side. Jeg bruker denne versjonen av skriptet for å "unnslippe" fra rammen: Det er et annet lignende alternativ som gjør nesten det samme: Og til slutt et skript som stopper siden fra å laste hvis den åpnes i en ramme. Etter min mening er dette en veldig tvilsom måte. Alle disse skriptene bør selvfølgelig ligge på den beskyttede siden. I lang tid fungerte alle disse metodene bra, helt til HTML5 introduserte et spesielt tag-attributt iframe- sandkasse, som lar deg sette begrensninger på innholdet som lastes inn i rammen. Hvis dette attributtet er tomt, vil ikke skript bli utført på noen side som er åpen i denne rammen. Følgelig vil heller ikke skriptet for "escape" bli utført. "Sandbox" støttes av alle moderne nettlesere (du kan se listen over nettlesere og versjoner).

For å bekjempe sandkassen ser jeg bare ett alternativ: noe av nettstedets innhold må lastes dynamisk ved hjelp av skript. Selv om siden kan åpnes i en ramme ved å ikke tillate skript, vil den beskyttede delen av innholdet fortsatt være utilgjengelig.

Mot de to første skriptene som siden prøver å "hoppe" ut av rammen med, vil følgende hendelsesbaserte skript hjelpe ubeforutlastning, som oppstår når rammen prøver å erstatte hovedsiden Nettleseren vil gi en advarsel, det er nok å avbryte overgangen og det er det, overordnet siden er på plass og den nødvendige siden er åpen i rammen. Samtidig kjøres skript på den normalt. Ikke glem å bare skyte handleren ubeforutlastning når rammen er fullastet, ellers vil den samme meldingen vises på enhver overgang fra siden.

Til å motvirke trikset med ubeforutlastning du må bruke "Frame-Killer # 3"-skriptet eller ringe de to første med et lite intervall. Før eller siden vil brukeren gå lei av advarselsdialogen, og selv om den beskyttede siden åpnes, vil den fortsatt ikke fungere med det normalt. Og når du bruker denne metoden i Firefox og Chrome-nettlesere, dukket utgangsadvarselen opp bare én gang, hvoretter siden stille "hoppet" ut av rammen.

På dette tidspunktet er det bedre å stoppe kjeden av konfrontasjon mellom en lur rumpa og en pikk med en skrue og gå til serversidebeskyttelse. For å sette et fullstendig forbud mot å laste inn nettstedet ditt i rammer på andre ressurser, legg bare til en ny overskrift "X-Frame-Options" til serversvarhodene. Tittelen kan ha en av tre verdier:

  • SAMEORIGIN- Siden åpnes i en ramme bare hvis det overordnede dokumentet er plassert på samme domene. Det beste alternativet for de fleste nettsteder.
  • BENEKTE- Fullstendig forbud mot å åpne en side i en ramme, uavhengig av domene.
  • TILLAT-FRA domene - Gjør det mulig å åpne siden i rammer for det angitte domenet. Denne verdien støttes ikke av alle nettlesere, så det er best å ikke bruke den.
Hvis Apache brukes som en webserver, er den enkleste måten å skrive denne overskriften inn i filen .htaccess

#
Header sett alltid X-Frame-Options SAMEORIGIN
#

I dette tilfellet vil den automatisk legges til alle forespurte sider og dokumenter. Hvis du ikke trenger å legge til X-Frame-Options-overskriften på alle sider, eller kontrollere åpningen basert på domenet, eller du ikke har muligheten til å redigere .htaccess-filen, eller webserveren ikke støtter den, da er det best å sende denne overskriften i motoren til selve nettstedet ... For eksempel i PHP. Du kan også se etter tillatte domener, som vil fungere uavhengig av klientens nettleser: Ved å bruke alle de oppførte metodene for beskyttelse mot å se nettstedet i en ramme vil du kunne beskytte mot

Noen ganger kan det oppstå en situasjon når webvisoren i beregningen ikke fungerer. Når jeg prøver å se en besøkspost, dukker det opp en feilmelding med noe sånt som dette:

Tellerkoden ble ikke funnet på siden, eller siden er forbudt å vises i en ramme

Først, la oss sjekke om webvisor er aktivert i telleverkinnstillingene våre. Du kan raskt sjekke dette ved å bytte til kodevisningen (Ctrl + U). Vi ser etter den metriske koden og webvisor-anropet der, nemlig linjen webvisor: sant.

Hvis webvisoren ikke reproduserer, men koden er på siden, har vi flere alternativer igjen:

  • blokkering av klientnettleseren
  • blokkering fra serversiden (det beryktede forbudet mot å vise en side i en ramme)

Alternativ 1. Webvisoren fungerer ikke i metrikken på grunn av blokkering av klienten

I dette tilfellet må du sørge for at du har tilgang:

  • til metrika.yandex.ru og mc.yandex.ru
  • til * .yandex.net (hvis "Laster inn sider i spilleren - på vegne av en anonym bruker" er valgt i webvisor-innstillingene, er tilgang til ressursen også valgt)

Tilgang til dem kan blokkeres av antivirus, brannmur eller på bedriftsnettverksnivå. Legg til disse adressene til din klarerte liste og sjekk om problemet vedvarer.

Hvis problemet vedvarer, prøv å logge på fra en "ren" nettleser, der det ikke er noen plugins (spesielt annonseblokkere og antivirustillegg).

Denne tilnærmingen løser i 99 % av tilfellene problemet med gjengivelse i webviewer på klientnivå.

Alternativ 2. Det er satt et forbud mot å vise siden i en ramme

Det er litt mer komplisert her. Men å identifisere feilen er lett nok. For å gjøre dette, i Yandex Metrica:

  1. Åpne webvisor- eller kartsiden, trykk på F12 (utviklerverktøy skal åpnes);
  2. Velg fanen "Konsoll";
  3. Last inn siden på nytt;
  4. I listen over feil vil du se en linje uthevet i rødt, hvor det vil bli skrevet om problemet som har oppstått.

Hvis det er en blokkering av nettstedets visning i en ramme, vil du se linjen i konsollen X-Frame-alternativer: SAMEORIGIN, som sier at dette nettstedet:

  • kan vises i rammer for gjeldende vert,
  • ikke fra andre verter.

Vi jobber for tiden aktivt med implementering av skjermoppløsning i iframene til den valgte verten, men så langt støttes ikke denne løsningen av nettlesere. (korriger meg når situasjonen endrer seg) .

Å fjerne dette forbudet betyr bevisst å introdusere en sårbarhet på nettstedet.

Derfor bruker hver utvikler det på egen risiko og risiko (for eksempel i 1C-Bitrix sier de det direkte: bryr du deg mer om nettstedets sikkerhet eller det faktum at webvisoren ikke gjengir handlingene til besøkende?).

For å være sikker på at nettstedet virkelig er forbudt, og av denne grunn ikke fungerer webvisoren i Yandex-metrikken, må vi for eksempel sjekke serversvaret i enhver tilgjengelig tjeneste. Vi skriver inn adressen til siden vår og får følgende resultat:

Resultat for sjekk av serversvar

Vi ser denne linjen, så årsaken er funnet!

Hvordan fjerne forbudet mot å vise en side i en ramme?

Det kan være flere alternativer også her. Forbudet kan være på nivået:

  • serverkonfigurasjon... Hvis du har en delt hosting, kan ikke problemet løses uten hjelp fra teknisk støtte.
  • htaccess-fil... Denne konfigurasjonsfilen ligger i rotkatalogen. Åpne den og slett linjen du ønsker.
  • manus... Mange CMS-er hardkode som sender denne overskriften inn i sikkerhetsbibliotekene sine, og det kan være ganske vanskelig å finne ut av dem.

For eksempel, i WordPress, er grunnleggende beskyttelse på skriptnivå (wp-includes / functions.php). Eller det kan påkalles gjennom en sikkerhetsplugin (Security Pack-plugin er kjent for å ha denne effekten).

Men det er ikke noe komplisert her heller. Du trenger bare å gå gjennom filene til kontrollsystemet og søke etter setningen for å finne de nødvendige filene du kan klippe fra (eller kommentere den nødvendige linjen). Den nødvendige linjen er: header ("X-Frame-Options: sameorigin");

Hvis nettstedet ditt er på nic.ru (Ru-Center), må du bytte det fra automatisk til manuell modus, og deretter fjerne linjen med forbudet fra filen ~ / etc / nginx / site_name.site. konf.

Lykke til med analysene dine!

Fra tid til annen kan du ha problemer med webvisoren i Yandex. Webmaster-beregningen. Du vil se en oversikt over et besøk på nettstedet ditt, men av en eller annen ukjent grunn kan du ikke det. Mest sannsynlig er det forbud mot å vise siden i en ramme.

Hva du skal gjøre hvis webvisoren ikke fungerer gjennom Yandex. Metrica

Først må du sjekke om du har slått på webvisor i metrikken (i tellerinnstillingene). Vi går til siden på nettstedet der den metriske telleren er installert. Gå til sidekodevisningen ved å klikke på (ctrl + u), med ctrl + f-kombinasjonen starter vi søket etter ønsket kodefragment, nemlig - webwizor: true. Hvis på slutten av fragmentet er falsk, vil ikke koden fungere som den skal. Forbudet mot å vise en side i en ramme (webvisor) bekreftes.

Hvis webvisoren i beregningen fortsatt ikke gjengir brukerhandlinger, er det flere varianter av problemet:

  1. Blokkering fra klientens nettleser.
  2. Blokkering fra siden av serveren som nettstedet ditt er plassert på.

La oss vurdere begge løsningene på problemet. Det første alternativet: webvisoren fungerer ikke på grunn av at nettleseren blokkerer klienten, noe som betyr at siden er forbudt å vises i en ramme.

Blokkering av klientnettleser

Sørg for at du har tilgang til en hvilken som helst Yandex-adresse: * .yandex.ru. Hvis inkognitomodus er valgt i innstillingene, er blokkering aktivert. Tilgang til ressurser kan blokkeres av antivirus (sjekk innstillingene), systemets brannmur eller på subnettnivå. For å fikse problemet, legg dem bare til listen over pålitelige nettsteder, så skal problemet forsvinne.

Hvis problemet med å sette et forbud mot å vise en side i en ramme fortsatt gjenstår, så bare gå fra en ren nettleser - det kan være "Inkognito"-modus eller en nedlastet nettleser uten plugins og tillegg, utvidelser (i tilfelle av " Google Chrome"). Denne tilnærmingen løser problemet 99 ganger av 100.

Blokkering på serversiden

Det andre alternativet: et forbud mot å vise sider i en ramme er satt. Dette problemet er litt vanskeligere å løse enn i det første tilfellet.

  1. Åpne "Webvisor"-delen i Yandex. Metrisk, trykk på f12 (etter å ha klikket åpnes utviklerens verktøy).
  2. Fanen "Konsoll", last inn siden på nytt (F5).
  3. Det vil være en understreket rød linje i listen over feil, det vil bli skrevet om problemet.

Hvis blokkeringen for å vise nettstedet ditt i en ramme er satt, vil du se følgende linje i "Konsoll": X-Frame-Options: SAMERIORIGN

Den siste tiden har det blitt jobbet aktivt med å løse dette problemet, men så langt støttes ikke løsningen i de fleste nettlesere. Hvis du fjerner dette forbudet, gjør du bevisst nettstedet ditt sårbart for hackerangrep eller bare hacking.

La oss gi et eksempel: Hos 1-C-Bitrix-selskapet sier de: "Er sikkerheten til nettstedet viktigere for deg, eller det faktum at du ikke kan se handlingene til brukeren på nettstedet ditt?" For å være sikker på at det er av denne grunn at webvisoren ikke fungerer, og du ikke kan se hva brukerne dine gjør på siden, må du sjekke serversvaret på en forespørsel i en hvilken som helst kjent tjeneste. Skriv inn adressen til siden med installert webvisor og få resultatet, som på skjermbildet.

Det er satt forbud mot å vise siden i en ramme, skjermen indikerer dette.

Har du likevel bestemt deg for å oppheve forbudet? Hvis det er på serverkonfigurasjonsnivå, og du har satt nettstedet på delt hosting, kontakt teknisk støtte.

Hvis forbudet er på skriptnivå, sender forskjellige cms en forespørsel til sikkerhetsbibliotekene deres, så problemet vil være vanskeligere å løse enn du tror. Kunne du ikke åpne siden i en ramme? Kontakt utviklerne av CMS.

Som du kan se, hvis du setter et forbud mot å vise siden i en ramme, kan du til og med løse problemet selv.