Crowi は、認証付きの Wiki で、クローズドな環境で使われることが多いと思うんですが、外部サイトへリンクを張っていると、相手サイトにリファラが伝わるケースがあります。
これは、Crowi を https 化しても同様です。httpsサイト -> http サイトなら、ブラウザはリファラを相手に通知しないんですが、httpsサイト -> https サイトだと、ブラウザは通知してしまいます。
Let's Encrypt など、無料でドメイン認証(DV: Domain Validation) の証明書を発行してくれるところが出てきたので、ますますこの傾向は強まっていくものと思われます。
で、これを抑制しようと
Referrer を制御する
http://qiita.com/wakaba@github/items/707d72f97f2862cd8000
を参考に、ヘッダに
<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 もやっとかないとダメかなぁ……
Crowi v1.5.0 がリリースされました。
https://github.com/crowi/crowi/releases/tag/v1.5.0
なんと言っても、目玉は検索対応でしょう!(検索エンジンには Elasticsearch が使われます)
ということで、CentOS7 で Crowi v1.4.0 を利用している人向けに、Crowi 1.5.0 に上げる方法について下記に。
まずはElasticsearchをインストールしておきましょう。/etc/yum.repos.d/elasticsearch.repo を下記の内容で作成しておきます。
[Elasticsearch-2.x]
name=Elasticsearch repository for 2.x packages
baseurl=http://packages.elastic.co/elasticsearch/2.x/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1
また、plugin に kuromoji が必要なので、それもインストールしておきます(plugin のインストール後に、Elasticsearchの restart が必要です)
$ sudo su -
# yum update
# yum install java-1.8.0-openjdk elasticsearch
# cd /usr/share/elasticsearch
# bin/plugin install analysis-kuromoji
# systemctl restart elasticsearch
次に Crowi を止めて、バックアップを取ります。
$ sudo systemctl stop crowi
$ mkdir -p ~/backup/public
$ mongodump --out ~/backup/2016-09-06_01
$ rsync -avz $SOMEWHERE/crowi/public/ ~/backup/public/
下記、以前書いた "Crowi を CentOS7 にインストール" [2016-05-13-1] に従ってインストールしたと仮定して記載していきます。
$ cd /usr/local/src/crowi
$ git pull --tags
$ git checkout v1.5.0
$ npm install
次に、/etc/sysconfig/crowi に下記 1行を追加します。
ELASTICSEARCH_URI=http://127.0.0.1:9200
Crowi を起動します。
$ sudo systemctl start crowi
あとはログインして、"管理" -> "検索管理" -> "Build Now" をクリックすれば、以降検索が可能となります。
地味によい改善としては、ページの削除、セキュリティの強化なども。ただ今回の更新でも、管理者からユーザのパスワードの上書き変更ができないので、今後の運用を考えると、ちょっとドキドキ……みんな、パスワード忘れました!とか言い出さないでね(DBを直接書き換えるとか、あんまりやりたくない)
IPv4/IPv6 meter |
思ったより安い……時もある、Amazon |