Webmention - W3C Candidate Recommendation 24 May 2016
先月の話になるが、Webmentionという規格がW3Cで勧告候補とされていた。Webmentionは、作成したウェブページに含まれるリンク情報を通知するための規格である。HTML文書の作成者は、リンクを貼ったWebページが掲載されているサーバに対してリンクを貼ったことを通知することができる。いわゆるブログサービスにおける「トラックバック」を実現するためのプロトコルだ。このようなリンクしたことを通知するためのプロトコルは Linkback と呼ばれている。
Linkbackのためのプロトコルとしては pingback があり、Webmentionは位置付けとしては本規格はその後継とみることができる。pingback はXML-RPCベースのプロトコルであり、JSONやRESTベースのプロトコルに慣れた今のウェブサイト開発者にとっては少し使いにくい。そこで、より簡単にプロトコルに沿った通知をできるようにしようというのがWebmentionが策定された趣旨であるようだ。
Webmentionが提案された背景にはpingbackのセキュリティ問題もある。2014年ごろにWordpressに標準機能として搭載されていたpingbackが悪用され、数万のWordpressサイトを踏み台にしたDDOS攻撃が発生したことが話題になった。
多数の.JPサイトも踏み台化:今度はWordPressが踏み台に、Pingback機能を悪用しDDoS攻撃 - @IT
pingbackにかぎらず、Linkbackは送信されたリンク情報が本当かどうかを確認するために、リンク元のURLにアクセスして内容をリンクの有無を調べる。つまりpingをエンドポイントに向けて送信するとこちらが指定したURLへのアクセスが必ず発生するのである。先に紹介した事例では、数万のWordpressサイトに対して攻撃対象のURLをリンク元として指定したpingbackを送信することで、pingbackを利用したDDOS攻撃を可能にしたのである。こうした事情があって、pingbackのユーザは急速に減ってしまいトラックバックがあまり使われなくなってしまった。
これに対してWebmentionは受信したpingの検証を非同期的に処理することでDDOS攻撃をある程度抑制する仕組みをつくるようだ。本質的な解決にはなっていないようには思えるが、それでもある程度の緩和にはなるだろう。
Webmentionに対応するには、HTML文書のヘッダに1, 2行ほどWgebmentionのエンドポイントURLを含めるだけでいいとのことなので、早速本ウェブサイトにも導入してみた。なお、Webmentionのエンドポイントはホスティングサービスとして既に運用されているwebmention.ioを使用している。
Webmentionのように被リンク情報を通知するプロトコルは、単方向のリンク関係を基本とするWWWの不完全性を補完する極めて重要な規格だと思う。事実、Webmentionはデジタルアーカイブの画像技術標準化を志向した規格であるIIIFにおいて、ある画像に付与されたアノテーションを提供元に通知する手段として検討されているようだ。
Webmentionが被リンク通知の標準として普及するかどうかはまだまだこれからだが期待していきたい。