ITよろづや

ITの参考になる情報を備忘録代わりに残していきます

RedmineのTweaksプラグインでHTTPリファラの無効化、別ウインドウが動作しない

会社で社内用のRedmineを構築しているんですが、そこで外部のURLのリンクを記載していて、そのままリンクをクリックしてしまうと、内部のサーバー(送信元)の情報が外にHTTPリファラとして送信されてしまいます。

 

セキュリティの事を考えたら、それを抑止したいところ。ちなみに、HTTPリファラは以下のサイトが分かりやすいです。

 

>>いつHTTPの"Referer"ヘッダは送られるのか? | NCSIRTアドバイザリ | 情報セキュリティのNRIセキュア

https://www.nri-secure.co.jp/ncsirt/2013/0913.html 

 

 

SANSインターネットストームセンターのハンドラであるJohannes Ullrichが、HTTPのRefererヘッダについて報告している。 (掲載日:米国時間 2013年8月25日)

"Referer"ヘッダは頻繁にプライバシーの問題があると見なされる。ブラウザが最後に訪れたWebサイトを知らせてしまうからだ。Webサイトが不用意にコード化されていた場合、ブラウザは機密情報(セッショントークン、ユーザ名/パスワード、URLの一部として送信される他の入力情報)を通信する可能性があるだろう。

例えば、Refererヘッダは頻繁に内部システム(ウェブメールシステムのような)や顧客サービスポータルをさらしてしまう。

 

とセキュリティ的によくない事が分かります。ちなみに、ブラウザ側でも設定できますが、部分拒否などができないので、接続先のサイトによっては拒否られたり、不具合があることがあります。


その為、基本は、そのURLをコピー&ペーストしてブラウザに貼り付ければ、問題ないんですが、それも面倒。


そして、Redmineには、外部URLを別ウインドウで開いたり匿名http referrer機能のpluginがあります。


こちら、

http://www.redmine.org/plugins/redmine_tweaks 

 


このツールの機能です。ズラーッと英語ですが、、、「open external urls in new window」という機能があります。外部URLを新しいウインドウで開くというものです。もう一つが「noreferrer for external urls」という機能で、外部URLにno referrer、つまり、HTTPリファラしないという機能があります。

 

【Features】
・global header for all projects
・global footer for all projects
・welcome text for login page
・global sidebar content support
・set info message above new ticket (e.g. for guidelines)
・use "Project guide" on project overview page
・option to remove "my page" from top menu
・customize "Help" url in top menu
・disable (hide) modules for projects
wiki marcos: list_users, list_projects, date macros, garfield, youtube, vimeo, twitter, calendar, last_updated_by, last_updated_at, recently_updated, gist
・user#1 and user:admin support for textile
・add custom menu items to top menu
・open external urls in new window
・noreferrer for external urls
・Hide role in project member box
・"Go to top" link
・info page with all available macros
・configurable issue rules
 -prevent to close an issue with open sub issues
 -change assigned_to_ automatically, if issue status changes
 -assigned_to has changed, but status change is required, too

 

おっ、これはもしかしたら行けるかも、、、という事で、続いて必要な要件です。Redmineのバージョンが2.6.0以上、Rubyのバージョンが2.0.0以上だと動作します。

 

【Requirements】
Redmine version >= 2.6.0
Ruby version >= 2.0.0


そして、インストール手順です。

 

$ cd $REDMINE_ROOT
$ git clone git://github.com/alphanodes/redmine_tweaks.git plugins/redmine_tweaks
$ bundle install --without development test

 

※「$REDMINE_ROOT」はRedmineのインストールディレクトリに置き換えてください。当方は、/var/lib/redmineでした。後は、そのまま実行すればプラグインが入りました。

 

root権限だと怒られるメッセージがでますが、そのままインストールできました。ここも色々調べ上げて大変でした。。。


実際にプラグインがインストールされたかどうかは、Redmineにログインして、プラグインの項目にインストールしたプラグインが表示されていることを確認してください。また、管理からTweaksという項目ができるので、実際に設定ができます。


ただ、動作確認したところ、なぜか動作しませんでした。プラグインの設定で「別のウインドウで開く」「匿名リファラ」というような項目があり、設定を有効にしてみましたが、当方の環境では動作しませんでした。


設定変更して動作したのが、トップページのヘルプの表示を消すとか、ヘルプのリンクを変えるなどは動作しました。うーん、環境依存なのか。ちなみに、Redmineのバージョンは3.3、CentOSは7.2でどちらも最新をインストールしています。


httpリファラを送信させない設定については、調べて発見したので別途、共有したいと思います。