無断リンク禁止スクリプト

色々考えた結果、「無断リンク禁止派はWebに於ける引き篭りのようなもの」という結論に達した。つまりリンク自由主義者の活動は彼らにとってみれば無理矢理カウンセリングに連れ出されるようなもので苦痛の極みと言える。こんな状態では双方の幸せは有り得ない。
無断リンクを禁止する手法も持たず闇雲に禁止を叫ぶのも不毛だが、それを全否定するのも矢張り不毛だ。双方が納得するとまではいかずとも、落とし所を見出さねばなるまい。
で。
取り敢えず「無断リンク禁止スクリプト」を作ってみた。
単なるJavaScriptなので、何ら専門知識を持たずともコピー&ペーストだけで利用できる。その代わり、JavaScriptを切ったりURLをコピーして別ウィンドウで開けば簡単に回避できる程度の代物だ。

使い方

以下のソースをHTMLのヘッダ部分にコピー&ペーストし、拒否URL/許可URL/転送先を書き替える。

<script language="JavaScript">
<!--
Denial = new Array ( 'http://127.0.0.1' );	//拒否URL
Permission = new Array ();	//許可URL
JumpURL = "http://127.0.0.1/index.html";	//拒否の場合の転送先

if ( document.referrer.length != 0 ){	//リンク元URLがあるかどうかチェック
	if ( Permission.length != 0 ) {	//許可URLがあれば以下の処理

		for ( i in Permission ) {	//許可URLの各項目について
			if ( document.referrer.indexOf ( Permission[i] ) =-1 ) {	//リンク元と許可URLが一致しなければ
				window.location.href = JumpURL;	//転送
			}
		}

	} else {	//許可URLがなければ以下の処理

		for ( i in Denial ) {	//拒否URLの各項目について
			if ( document.referrer.indexOf ( Denial[i] ) !=-1 ) {	//リンク元と拒否URLが一致したら
				window.location.href = JumpURL;	//転送
			}
		}
	}
}
/*
denialは拒否URL。permissionは許可URL。
括弧の中にURLをシングルクォーテーションで括ってコンマ区切りで複数列記する。
許可URLが設定されている場合はそれ以外の全URLを拒否。
*/
// -->
</script>

弱点

  • JavaScriptなので、閲覧者がブラウザの設定でJavaScript無効にしてあれば機能しない。対策としては、noscriptに<!--のみ記入しておくことでJavaScript無効時には全体がコメントアウトされるようにする、など。
  • あくまでリンクをクリックしたときのみ有効なので、例えばリンク先URLをコピーしてアドレスバーを書き替えて移動すれば機能しない。

ライセンス

ライセンスを提示する程の代物ではないのでご利用はご自由に。一応各行に何のための処理か書いてあるので、それを元に改造してみるも良し。

もっと手の込んだ方法

CGIで処理してしまえば回避方法もなくなる。