webmention

Moderne «pingback»-funksjon blir webstandard. Slik kan den tas i bruk

Kan bidra til å flytte samtalen ut av de kommersielle, sosiale mediene.

Den flere år gamle teknologien Webmention har nå blitt en offisiell W3C-standard for å varsle nettsteder om at de har blitt lenket til av andre nettsteder. Logoen i bildet er hentet fra nettstedet Webmention Rocks, som omtalt i saken.
Den flere år gamle teknologien Webmention har nå blitt en offisiell W3C-standard for å varsle nettsteder om at de har blitt lenket til av andre nettsteder. Logoen i bildet er hentet fra nettstedet Webmention Rocks, som omtalt i saken.

Standardiseringsorganisasjonen W3C kunngjorde i forrige uke at den har godkjent en ny, offisiell webstandard som heter Webmention.

Enkelt fortalt handler den om at et nettsted A automatisk blir varslet dersom et nettsted B har lenket til en webside på nettsted A.

La oss si at Anders skriver et innlegg i bloggen sin. Dette oppdages av bloggeren Berit, som skriver et eget innlegg som en respons til Anders' innlegg. I blogginnlegget lenker Berit til innlegget til Bjørn.

Med Webmention er det mulig for et nettsted, for eksempel Berits blogg, å sende et varsel til et annet nettsted, for eksempel Anders' blogg, om at Berits innlegg har en lenke til innlegget til Anders.

Publiseringsløsningen til Anders kan da motta dette varselet, bekrefte at lenkingen faktisk har funnet sted, og automatisk bruke denne informasjonen til noe nyttig.

Et eksempel er at det under blogginnlegget til Anders automatisk blir opprettet kommentar som blant annet inneholder lenke tilbake til blogginnlegget til Berit, slik at det hele framstår som en samtale.

Pingback

Mange vil se at dette har veldig mye felles med Pingback-systemet, som opprinnelig ble funnet opp av Stuart Langridge i 2002 og gjorde det mulig for innlegg på blant annet ulike WordPress-nettsteder å snakke med hverandre automatisk, på samme måte som med den langt mer manuelle forløperen Trackback. Men etter en blomstrende start, har bruken blitt betydelig redusert, blant annet fordi systemet er populært å utnytte av spammere.

Dessuten har sårbarheter i Pingback blitt utnyttet til å utføre store DDoS-angrep.

Webmention er i praksis det samme som Pingback, bare bedre. I et gjesteinnlegg hos WP Tavern skriver teknologiskribenten James Richman at den største forskjellen ligger i koden som de er komponert av.

– Pingback bruker XML-RPC, en utdatert tilnærming som koder data med XML og transporterer disse dataene med HTTP. Pingback-systemet er klumpete og tregt. Webmention bruker derimot HTTP og x-www-form-urlencoded-formatert innhold, et format som i dag er langt mer allment akseptert. Resultatet er at Webmention er mye raskere og enklere å integrere, skriver Richman.

Les også: Lærdom fra tidenes DDoS-angrep i Norge

Spamkontroll

Han nevner også at Webmention er i stand til å blokkere spam på en effektiv måte ved hjelp av Vouch-protokollen, som er en utvidelse av Webmention-spesifikasjonen. Dessuten skal kommentarene som Webmention genererer, se mer naturlige ut.

Det at W3C nå har gjort Webmention til en standard, betyr ikke at teknologien er noe helt nytt. Den opprinnelige spesifikasjonen skal ha blitt skrevet av gruppen IndieWebCamp allerede i 2013 og har begynt å bli ganske utbredt. Det finnes en Webmention-plugin til WordPress og en hel del implementeringer for både sender- og mottakersiden.

Noe av målet til IndieWebCamp er å gjøre innhold som individuelle bidragsytere publiserer på weben, mindre avhengig av kommersielle aktører. Dette er innhold som i dag ofte bare er tilgjengelig så lenge den kommersielle aktøren – det kan være Facebook, Twitter, Google, Disqus eller digi.no for den sakens skyld – velger å la det være tilgjengelig.

Ifølge The Register, som omtalte forberedelsene til en Webmention-standard i februar i fjor, innebærer tilnærmingen IndieWebCamp tar til orde for at hver bruker har sitt eget nettsted hvor de har full kontroll over dataene.

Problemet er at de separate nettstedene ikke har hatt noen felles og standardisert måte å lenke sammen samtaler som skjer på tvers av nettstedene. Derfor velger mange å dele innholdet med for eksempel Facebook eller Twitter for å aggregere, organisere og vise fram samtalene.

Men Webmention skal være akkurat en slik standard som har manglet.

Slik gjøres det

Både sender- og mottakernettstedet må støtte Webmention for at teknologien skal fungere. Sendernettstedet må først laste inn den nevnte websiden («target») og se hva som er mottakernettstedets Webmention-endepunkt, altså en URL.

Denne kan være oppgitt på én av tre måter, enten i en HTTPL Link-heter, som en link-tagg eller i en vanlig a-tagg. Felles for alle er at de må inkludere parameteren rel med verdien webmention, for eksempel som dette:

<link href="http://domene.no/webmention-endpoint" rel="webmention" />

Dersom denne informasjonen er oppgitt, kan senderen varsle mottakeren om at websiden har blitt nevnt. Dette gjøres ved en POST-forespørsel som sendes til den nevnte endepunktadressen. I forespørselen må parameterne source (websiden som inneholder lenken) og target (websiden det lenkes til) være oppgitt i et «x-www-form-urlencoded» format.

På mottakersiden blir forespørselen deretter validert og prosessert, samtidig som det sendes en HTTP-statuskode om at forespørselen har blitt mottatt.

Unngå lenkeråte

Ifølge W3C-standarden skal senderen sende tidligere sendte Webmentions på nytt dersom kilde-URL-en (til Berits blogginnlegg i eksempelet over) blir endret.

Dersom kilde-URL-en blir slettet, skal senderen svare med HTTP-statuskoden 410 («Gone») og vise det som omtales som en gravstein-representasjon av den slettede siden.

I tillegg skal senderen på nytt sende en Webmention for hver eneste tidligere sendt Webmention for dette dokumentet, noe som gjør det mulig for mottakernettstedet å fjerne kommentaren med lenken til innlegget som nå har blitt slettet.

Det er mulig å teste nettstedets Webmention-oppsett på nettstedet Webmention Rocks.

Unngå DoS-angrep

På mottakersiden må det valideres at den innkommende Webmention-forespørselen inneholder både source- og target-URL-er. Dersom mottakeren har til hensikt å bruke forespørselen til noe, må det sendes en GET-forespørselen til sendersiden for å kontrollere at den faktisk nevner target-adressen.

Problemet er det kan ta tid å svare på slike GET-forespørsler. I andre tilfeller får man kanskje ikke noe svar i det hele tatt. Dersom en webserver mottaker store mengder med slike forespørsler i løpet av kort tid, kan det føre til at serveren bruker opp alle ressursene på dette og i praksis blir offer for et tjenestenektangrep – tilsiktet eller ikke.

Det er derfor viktig at Webmention-forespørslene legges i en kø og at verifiseringsprosessen utføres asynkront. For å redusere tiden som går med til å verifisere hver forespørsel, foreslås det at det håndteres som en feil dersom kilden ikke svarer innen fem sekunder. Det foreslås også at man begrenser antallet HTTP-omdirigeringer til 20 og at man slutter å laste ned kildesiden etter når datamengden har passert 1 megabyte, «siden enhver rimelig HTML- eller JSON-side vil være mindre enn dette.»

Artikkelen fortsetter under bildet.

Webmention kan også fungere når nettstedet lenker til et annet krever innlogging. Diagrammet over viser hvordan denne mekanismen fungerer. Foto: IndieWebCamp
Webmention kan også fungere når nettstedet lenker til et annet krever innlogging. Diagrammet over viser hvordan denne mekanismen fungerer.

Tjenester

Det finnes tjenester som tilbyr nettsteder å motta Webmention-varsler når artikler og innlegg på nettstedet blir nevnt og lenket til i sosiale medier, som kanskje ikke støtter Webmention selv.

Bridgy er en slik tjeneste, som har blitt etablert under inspirasjon av IndieWebCamp-fellesskapet. Ikke overraskende er tjenesten derfor gratis å bruke.

Les også: Heretter er det HTML 5.1 som gjelder

Powered by Labrador CMS