pukiwikiプラグイン/jumpto の変更点

お名前:


#author("2017-08-25T06:45:09+09:00","-","-")
#author("2017-08-26T09:49:51+09:00","-","-")
表記、そんな感じのものを作ったので、一応公開しておきます。~

*プラグイン概要 [#sef7708c]

コンテンツ内の外部サイトへのリンクを置換し、リダイレクトページへ飛ばすPukiWiki用プラグインです。~
もともとは他の方が作成されていたもので、友瀬による部分的な改造を行いました。

このプラグインの本来の目的は、誰もが編集できる一般的wikiにおける「信頼できない」「悪意ある」サイトへのリンクを勝手に作られてしまう問題への回答です。当該wikiサイト以外へのリンクについては一度中間ページで確認表示することで、危険なサイトへの移動を抑止しよう、とすることを狙っています。~

上記方式の弱点は、「このサイトは安全」と管理者が確信できるサイトへの転送も必ず「中間ページ」を介してしまうという点です。今回の友瀬版では、外部サイトであってもこのような「信頼できる」サイトへは直接飛ぶように指定できるようにしています。

また、オリジナルではEUC環境でいまいちな動作だったため、そこも修正してあります。~
※友瀬のEUC環境でしか動作確認していません:UTF環境でおかしかったら、プラグイン内の「EUC対応」部分の1行を削除してください。

-オリジナル: teanan.homeip.net の元ページ
--http://hirotea.daa.jp/pukiwiki/index.php?%BC%AB%BA%EE%A5%D7%A5%E9%A5%B0%A5%A4%A5%F3%2Fjumpto.inc.php
-隠居小屋.netさん改造版。
--http://www.inkyogoya.net/pukiwiki/jumpto.html
--友瀬版は、この隠居小屋さんの 2011-11-26版をベースに改造したものです。

*インストール方法 [#xb4bc2b7]
+本ページに添付されている下記ファイルをダウンロードし、「jumpto.inc.php」の名前で pukiwiki の pluginフォルダにおいてください。
--pukiwiki 1.4.x 系:&attachref(jumpto.inc.php);
--pukiwiki 1.5.x 系:&attachref(jumpto.inc.php_1);
---1.4.x 系/1.5.x 系の差は、htmlspecialchars()/htmlsc() の差です。
---参考:[[pukiwikiノウハウ/1.4系と1.5系の差]]
+スキンに埋め込んでおくタイプのプラグインです。~
--上記サイトを参考にして、スキンを書き換えてください。
--簡単に書くと、以下のような内容を使用しているスキンの pukiwiki.skin.ja.php の最初のほうに記載すればよいです。
 require_once(PLUGIN_DIR . 'jumpto.inc.php');
 $body = plugin_jumpto_replace($body);


*使い方 [#hd49432b]

スキンに埋め込んでおくタイプのプラグインなので、wiki入力上で指定する内容はありません。

プラグイン内 plugin_jumpto_checkURL()において、信頼できるURLを記載することで、それを対象外にできます。~
例えば以下のように書くことで、Twitterへのリンクは中間を挟むことなく指定できます。
 array_push( $safelist, "https://twitter.com/");



*技術的な話。 [#c2e96c5e]

元のプラグインでは「自分自身のURL であるか否か」だけをチェックしていたところ、複数の「安全なサイト」を登録して比較できるようにしただけです。~

安全なサイトはプラグイン内に直接記載しています;これ自体を一般編集可能にしてしまうと、悪意ある攻撃者が「信頼できないサイトを登録」できてしまうためです。~
編集制限のあるページを参照するようにもできないことはないのですが、まあそこまではやらなくてもいいかな、と。

なおこの結果、転送先にある記事に起因して「さらに他のサイトに転送」されるリスクは発生します:例えば TwitterのURLを「信頼できる」ようにした結果、Twitter内の「変な記事」に起因しておかしなことになるリスクはあります。それはご理解の上、使用してください。

**気になったこと [#t2bd83be]
元プラグイン、textarea が含まれていると、そこでhtml記述が狂っているように見えます。~
詳しく調べてはないですが・・・


*コメント [#p7a8c88f]
ご意見などがあれば。
#comment2(below)
お名前: