無断リンク禁止派の中でも、サイトのトップページ自体へのリンクを完全に否定する人は少ない。多くは個別記事へのリンクを嫌うのみである。
また、所謂「祭り」の多くは特定のサイトにではなく特定の記事に対して発生する。
これらを考えると、個別記事に対してパーマリンクできないようなシステムを作ることでアクセス制限とは違う形での「防御」を形成することができるのではないだろうか。
どうやってパーマリンクを制限するかが問題だが、例えばトップページアクセス時の時間を種に各エントリのデータベースアドレスをcryptし、毎回違うURLを生成するとか。
キーの受け渡しはセッション終了時破棄のcookieで行う。これはキーをpostデータに含めないことでパーマリンクを不可能にする*1ためである。
cryptは非可逆な暗号化だから暗号化された結果から元のアドレスを逆算することはできないが、キーとなるアクセス時間を元に全エントリのアドレスをcryptした結果が一致するものだけ表示、のような処理で適正なページ表示が可能だろう。
この方式では処理が重くなる欠点があるが、処理対象は各ユーザー自身のエントリのみ(他ユーザーのページへはトップページ以外にリンクできないので)だからどうとでもなるはず。
つまり、
- トップページにだけ各エントリへのリンクがあり、これはアクセスの度に毎回違うURLになる。
- 各エントリのページからはトップページへリンクするだけ。
- 外部から直接エントリページにリンクしても、キーが一致しないのでアクセスできない。不一致の場合警告メッセージとともにトップページへ移動。
これで「リンクはトップページにお願いします」なんて書かなくてもトップページ以外へリンクできない、無断リンク禁止派御用達ブログができ上がる。
これからのパーマリンクは「htttp://hoo.baa.com/hogehoge/の2005年12月2日の「○○○」という記事」のように回りくどい紹介がデフォルトに!
考えてみればブログのように全体をサーバサイドで管理するなら、トップページへのアクセス時にcookieを発行、セッション中のみ下階層へのアクセスを許可しそうでないとき(直接のアクセス)ではトップページにリダイレクトすれば、わざわざランダムなリンクを生成する理由もないのだな。
Permalinkのない簡単ホームページサービス - ARTIFACT@ハテナ系のタイトルから連想。