2016-09-08-1
Crowi v1.5.0 にリファラ抑制機能を付けてみた、ものの……[Crowi] Crowi は、認証付きの Wiki で、クローズドな環境で使われることが多いと思うんですが、外部サイトへリンクを張っていると、相手サイトにリファラが伝わるケースがあります。これは、Crowi を https 化しても同様です。httpsサイト -> http サイトなら、ブラウザはリファラを相手に通知しないんですが、httpsサイト -> https サイトだと、ブラウザは通知してしまいます。Let's Encrypt など、無料でドメイン認証(DV: Domain Validation) の証明書を発行してくれるところが出てきたので、ますますこの傾向は強まっていくものと思われます。で、これを抑制しようとReferrer を制御するhttp://...を参考に、ヘッダに<meta name=referrer content="no-referrer">を追加し、さらに id='revision-body-content' と id='preview-body' 内にある Aタグの属性に ref="noreferrer" を追加するような感じで実装してみました。一応本家にフィードバックできるようにと、管理画面から Off/On できるようにしたんですが、- 設定が mongod に保存されないのになぜか設定が切り替わる(Crowiをrestartしても!)- 本来なら marked を override して実装すべきところを、DOM操作でごまかしてるとか、きちんと理解してないが故にダメダメな感じで pull request するなんて以っての外!さて、どうしたものかと twitterで嘆いてたら、作者の方から反応があって、普通に本家が対応してくれそう!ということで、同じようにリファラの抑制機能が必要な人は、本家の対応を待つといいよ!ともあれ、せっかくなので、- 固定的にリファラを抑制するパッチ- 管理画面から抑制を Off/On できるけど、挙動が謎なパッチで完全無保証というか当てるな危険というパッチの2種類置いときます。まぁどっちのパッチでもブラウザが対応してないとダメですけどね。しかし、Crowi を今後使う上でも、いよいよJavascript もやっとかないとダメかなぁ……
<<