Redmine RawHtml plugin » 履歴 » リビジョン 2
リビジョン 1 (kanata, 2025/04/13 13:53) → リビジョン 2/3 (kanata, 2025/04/13 13:54)
# Redmine RawHtml plugin
{{toc}}
# RawHtml plugin開発
## 概要
通常のRedmine(RubyOnRails)は、デフォルトで許可していないタグやスクリプトを表示・実行することができません。
これはセキュリティ上の仕様であり、正しい、あるべき姿です。
ただ、ただどうしても、貼り付けたいブログパーツとか、実行させたいJavaScriptとかがある場合があります。
それを可能にする[Wikiマクロ](http://yohshiy.blog.fc2.com/blog-entry-78.html)になります。
## 使い方
```
{{rawhtml(ここにhtmlタグ等を書く)}}
```
例
```
{{rawhtml(<div style="color:#ff0000">あああ</div>)}}
```
{{rawhtml(<div style="color:#ff0000">あああ</div>)}}
## 実行例
### SlideShareの貼り付け
{{rawhtml(<iframe src="//www.slideshare.net/slideshow/embed_code/key/3soyRAuyJc0nOS" width="340" height="290" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe> <div style="margin-bottom:5px"> <strong> <a href="//www.slideshare.net/bata_24/katagaitai-ctf-4-57598780" title="katagaitai CTF勉強会 #4 pwnables編 - CodeGate 2015 Pwnable400 beef_steak" target="_blank">katagaitai CTF勉強会 #4 pwnables編 - CodeGate 2015 Pwnable400 beef_steak</a> </strong> from <strong><a href="//www.slideshare.net/bata_24" target="_blank">bata_24</a></strong> </div>)}}
### PHOTOPRESSOの貼り付け
{{rawhtml(<script type="text/javascript" src="https://wpb.imagegateway.net/blogparts/9194892536"></script>)}}
### ブログカードの貼り付け([はてなブログ記事紹介ジェネレータ](http://otatin.com/widget/introgen/)を利用)
{{rawhtml(<div class="intro-article-wrapper" style="width: 100%; overflow: auto;"><a class="intro-article-img" href="https://raintrees.net/news/69" target="_blank" style="float:left;" rel="nofollow"><img src="http://capture.heartrails.com/150x130/shadow?https://raintrees.net/news/69" align="left" width="150" height="130" alt="オシャレ定量化コマンドを作ってオシャレ評価してみた - A painter and a black cat"></a><a class="intro-article-title" href="https://raintrees.net/news/69" target="_blank" style="font-size:110%;" rel="nofollow">オシャレ定量化コマンドを作ってオシャレ評価してみた - A painter and a black cat</a> <img src="http://b.hatena.ne.jp/entry/image/https://raintrees.net/news/69" style="opacity:0.8;"><span style="clear: both;"></span></div>)}}
### ブログカードの貼り付け([Embed Code Generator](http://embed.ly/code)を利用)
{{rawhtml(<a class="embedly-card" href="https://raintrees.net/news/69">オシャレ定量化コマンドを作ってオシャレ評価してみた - A painter and a black cat</a><script async src="//cdn.embedly.com/widgets/platform.js" charset="UTF-8"></script>)}}
## ダウンロード
このページに添付してあるやつをダウンロードします。
attachment:redmine-rawhtml-0.9.0.tar.gz
attachment:redmine-rawhtml-0.8.0.tar.gz
## セットアップ
DBは使ってないので、rakeとかは必要ありません。
ダウンロードファイル解凍後、pluginsフォルダへ。
````
# mv -i ./rawhtml /opt/alminium/plugins
````
お使いの環境に合わせて、ファイルの所有者を変更してください。
```
# cd /opt/alminium/plugins
# chown -R apache:apache rawhtml
```
## 注意事項
### 利用者のセキュリティに対する考慮について
このプラグインは **全てのタグ、全てのスクリプトを許容** します。
そのため、Redmineの登録ユーザは、 **XSS** や **CSRF** 等の攻撃を容易に仕込む事が出来ます。
まぁ…かなり気の知れた仲間内で使うとか、私みたいに自分用Redmineとして使ってる人向けだと思ってください。
>特定のユーザだけ許可するとか、そんな機能を加えればいいんだろうけど。
### 混在コンテンツのブロックについて
HTTPとHTTPSが入り交ざってコンテンツを配信していることを、混在コンテンツと言います。
最近のほとんどのWebブラウザは混在アクティブコンテンツに対しては自動でブロックします。
これはWebブラウザのセキュリティを考慮した仕様です。
以下の条件で、表示されたり、表示されなかったりします。
| | ブログパーツがhttp | ブログパーツがhttps |
|-----------------------|--------------------|---------------------|
| 表示元のサイトがhttp | ○表示できる | ○表示できる |
| 表示元のサイトがhttps | ×表示できない | ○表示できる |
これはこのプラグインに限った話ではなく、ブログパーツ一般のお話になります。
うまく表示されないブログパーツについては、混在コンテンツになっていないか確認するのがよいでしょう。
>ちなみにニコニコ動画のブログパーツがhttpのみで、このサイトをhttpsでアクセスしていると、うまく表示されないんや。。