直リンク禁止とその実現方法(1)
話をはじめる前にまず、 直リンク禁止ということをWebの世界で叫ぶこと自体にもともと無理がある ということをご理解いただきたい。 以前も書いたように、 特定のURLを指定することで特定のコンテンツを見れるという特性こそが Webというものの最大の利便性のひとつであり暗黙の大前提である。 Webを使っていながら直リンク禁止というのはこの利便性と前提に 真っ向矛盾してしまうのだ。
なお、無断リンクでも法律的に問題ないというのが 社団法人著作権情報センターの公式見解 である。ただしこの見解はいわゆる直リンク (=ディープリンク)に言及しているわけではなく 単に一般的な「リンク」の話をしているだけなことに注意。
また、以前紹介したWebアクセシビリティに関するJIS規格の文書上にも、 次のような記述がある。
2.5 「直リンク禁止」の防止正式な規格になる前の検討段階で議論にはあがったようだ。
サイトの管理者がトップページへのリンクしか認めず、 サイト内の各ページへ直接リンクするマーク付けを禁止している場合がある。 これはいわゆる”直リンク禁止”問題である。少なくとも、 公益的なサイトでは”直リンク禁止”をすべきでなく、 この規格で明示すべきであるという意見があった。 当該サイトにどのような形態でリンクするか、あるいは許可するかという問題は、 サイトごとのポリシーの問題であり、この規格では触れないことになった。
(JIS X 8341-3 高齢者・障害者等配慮設計指針−情報通信における機器, ソフトウェア及びサービス−第3部:ウェブコンテンツ 解説文より)
さて、そういったことはわかっちゃいるけどそれでも直リンクはやめてほしい、 という大人の事情もあるにはある。
ケース1:マスコミ(特に新聞社)のサイトが直リンクを嫌がる例
読売新聞社では、リンクはヨミウリ・オンラインのトップページ http://www.yomiuri.co.jp/ および個別サイト(DAILY YOMIURI ON-LINE、 大手小町 WOMAN、@マネー、医療と介護など)のトップページにお願いしております。 ただし、リンクされることによって編集意図が損ねられる恐れがあるサイト等の場合は ご遠慮いただきますので、あらかじめご了承下さい。 また、個別記事へのリンクは原則としてお断りしております。読売に限らず多くの新聞社、通信社のサイトでこのような記述をよく見かける。 なぜ個別記事へ直リンクされては困るのかというと、 単純な話「広告」の問題が大きいようだ。
(www.yomiuri.co.jp より)
新聞社のサイトにはトップページはもちろん個別の記事にもほとんど広告が入っている。 当然ながらトップページの広告料は個別記事上の広告料より高めの料金が設定されているだろう。 それなのに、他のサイトから個別の記事にに直リンクされてそこだけアクセスされ、 すぐにユーザーに去られてしまっては、 トップページに広告を出してもらっているスポンサー様に言い訳が立たなくなる。
マスコミにとって広告が最重要な収入源であるからこそ、 そこへのトラフィックはできる限り自身のコントロール配下に置かなければならない。 他のサイトからの直リンクは、そのコントロールを乱すノイズになってしまうのだ。 もちろん、そうした紙媒体的なコントロール手法をWeb上に持ち込もうとすること自体にも 無理があるのだが。
ケース2:動画やFLASHなど特殊コンテンツが人気のサイトの例
コンテンツの種類のよってはこういうお気の毒なことも起きるようだ。
...元はサーバAにHTMLもムービーも置いていたのですが、 あまりにも中国や台湾、香港からの直リンクが多くて サーバがダウンしてしまうこともあったので、 ムービーだけをサーバBに移し、なおかつhtaccessで サーバAのドメインがリファラーにないアクセスを拒否 するようにしました...たとえばの話、「ポケモン」といったいまや世界的に有名なキャラクターの 動画やFLASHなどの場合、日本語のWebページでその動画やFLASHを紹介しても 非日本語圏ユーザーにとっては日本語のWebページ自体は無意味だから、 動画そのものに直リンクされてしまう、といったケース。 これは十分にありうる話だろう。
(Apacheのメーリングリストへのある投稿 より)
ケース3:会員制サイト構築の際の設計ミス
たとえば、特定の商品やサービスを買ってくれた人にだけIDとパスワードを発行し、 それをつかってWebサイトにログインすると、その商品に関する詳細な資料を 見ることができる、といったユーザーサポート目的のサイトは最近よくある。
当然、コンテンツを閲覧できる人を限定しなければならないので、 Webサイトに会員管理/認証機能を持たせることになる。 とりあえずそれで、 http://www.example.com/content.jsp といったURLを見ようとすると、ログインしてない人にはログイン画面が、 ログイン済みの人にはコンテンツがそのまま表示される、といったことを実現できる。
ところが、そのコンテンツの中で「詳細にまとめたPowerPoint資料はこちら」 といった形でPowerPointやPDFファイルを見せたい場合もあるだろう。 それのURLが http://www.example.com/hogehoge.ppt だったり http://www.example.com/hogehoge.pdf だったりしたら、さあ大変! この直リンクURLが外部に漏れたら、そのサイトの会員じゃない人間でも ログインせずに資料ファイルをダウンロードできてしまうような事態になる。 何のための会員管理だ!とクレーム騒ぎになりかねない。 (それほど厳密な閲覧制限を必要としないのであればこれでも良いのかもしれないが)
知ってか知らずかこの失敗をやらかしてしまうSEやプログラマーは非常に多い。 ひどいときは 「Webってそういうもんですよ無理ですよ だって資料ファイルもDocumentRootディレクトリに置かないと 外からアクセスできないわけだし・・・」 といった逃げ口上を言い出すだろうが、99%設計ミスと技術不足である。 HTTPに関する正しい理解がある技術者であればきちんと実現できるはずだ。
もしも会員管理機能と認証機能をWebシステム上に既に持っているのであれば話は簡単。 (以下Java風に書くが、話をわかりやすくするため厳密ではない)
上記のようなスクリプトを書き、これをif (会員認証済みである==true) { // HTTPレスポンスヘッダを調整して出力 response.setHeader( "Content-Disposition", "attachment; filename=hogehoge.ppt" ) // DocumentRootじゃないディレクトリに置いた // hogehoge.pptを読み込んでHTTP出力する命令を // このへんに書く } else { out.println(" あなたは会員認証(つまりユーザー登録&ログイン) してないからこのパワーポイント資料は お見せできません。 ") }
http://www.example.com/getfile.jsp?filename=hogehoge.ppt
のような形でアクセスさせるようにすれば、PowerPointファイルについても 会員管理機能に基づいた閲覧制限が可能だ。 (上記のスクリプト例はどのファイルへアクセスできるようにするかといった セキュリティ的考慮はとりあえず棚上げしているので注意)
さて、直リンク禁止の実現方法にはどんなものがあるのだろう。 会員管理機能を持つサイトでの実現方法は上のケース3で既に話したとおりだが、 他のケースで考えられるいくつかの方法とそのメリットやデメリットを紹介しよう。
・・・のつもりだったのだが長くなったので次回につづく。
コメント
ページの直リンは法的には取り締まれないけど、
コンテンツのみの直リンは、(特にページ内で
表示する画像とかの場合に)著作権法で提訴可能
って見解はどこかで見たような気がしますが、、、?
Posted by ほげ at 2006年12月19日
コメントする
(初めてのコメントの時は、コメントが表示されるためにこのブログのオーナーの承認が必要になることがあります。承認されるまでコメントは表示されませんのでしばらくお待ちください)