pukiwikiプラグイン/jumpto

2017-08-25 (金) 06:43:56 (786d)
お名前:

表記、そんな感じのものを作ったので、一応公開しておきます。

プラグイン概要

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

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

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

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

インストール方法

  1. 本ページに添付されている下記ファイルをダウンロードし、「jumpto.inc.php」の名前で pukiwiki の pluginフォルダにおいてください。
  2. スキンに埋め込んでおくタイプのプラグインです。
    • 上記サイトを参考にして、スキンを書き換えてください。
    • 簡単に書くと、以下のような内容を使用しているスキンの pukiwiki.skin.ja.php の最初のほうに記載すればよいです。
      require_once(PLUGIN_DIR . 'jumpto.inc.php');
      $body = plugin_jumpto_replace($body);

使い方

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

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

array_push( $safelist, "https://twitter.com/");

技術的な話。

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

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

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

気になったこと

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

コメント

ご意見などがあれば。


お名前:

お名前: