記事一覧

.htaccessでアクセスコントロール

サイトへのアクセスコントロールには実施すべき優先順位があります。

  1. .htaccessによるアクセス遮断
  2. robots.txtによるアクセス拒否意思表示
  3. HTMLファイルのmetaタグによるインデックス拒否意思表示

基本的に一番目の.htaccessによるアクセス遮断のやり方さえ覚えておけば十分だと思います。ただし、レンタルサーバで.htaccessが使えない場合は二番目の方法を、robots.txtをサイトトップに配置できない場合は三番目の方法を、仕方なく選択し、アクセスする側の対応に期待する場合もありえます。

実験

pick up - Wiz★の防備録

いままでは作者の側では事実上、制御不可能*1でしたが、この更新で希望を示せるようになったわけですね。

(少なくとも.htaccessが利用できるレンタルサーバでは)今までも、(SiReFaSo以外の更新巡回捕捉サイトに対しても)制御可能でしたよ、ということを今から実証してみます。今回検証に使用するサーバはland.toです。

test.zip

このzipにはアクセス制限をかけているのでブラウザからはダウンロードできません。しかしSSPのゴーストにDnDするとnarフォルダ内にダウンロードされます(ゴーストではないダミーzipなのでインストールはできません)。同一ディレクトリ内の.htaccessに以下のように記述しています。

SetEnvIf User-Agent "SSP" ssp

order Deny,Allow
Deny from all
Allow from env=ssp

Firefoxの拡張などでUser AgentをSSPに偽装すればダウンロードできるかもしれませんが、少なくともSSPに偽装した検索クローラなど聞いたことはないのでアクセスされることはないでしょう。更新ファイルについても同様の効果が期待できます。要するにSSPでのネットワーク更新を有効にしつつ、更新捕捉サイトのアクセスをシャットアウトできます。必要に応じてmateria,CROW,偽林檎,ninix-ayaなどのホワイトリストを作成しておくとよいでしょう。

まとめ

最初に紹介した3つの方法の特長をまとめます。

.htaccessの問題点
  • サーバによっては利用できない場合がある
robots.txtの問題点
  • サーバによってはサイトトップに設置できない場合がある
  • 意思表示でしかない
  • 大手検索エンジン以外にはほとんど実効性がない
metaタグによる記述の問題点
  • HTMLファイルにしか記述できない(画像ファイル・ZIPファイルにmetaタグは書けない)
  • インデックス拒否の意思表示であってアクセス拒否ではない(そもそもアクセスしないことにはmetaタグは読めない)
  • 意思表示でしかない
  • 大手検索エンジン以外にはほとんど実効性がない

一番目の方法が使えない事情がある場合にそなえて、SiReFaSoはrobots.txtに対応しました。「検索避けしてるけど更新捕捉は別にいいよ」って場合は更新ディレクトリを許可すれば登録を受理します。具体例:

User-agent: *
Disallow: /
Allow: /ghost/your-update-directory/

二番目の方法が使えない(サイトトップに設置できない)場合は検討すべき課題と考えています。ゴーストの更新ファイルはHTMLではないのでmetaタグは書けないですしね。これについては三番目の方法に相当する独自の仕様を固めて実装した上でお知らせしたいと思います。

参考リンク

今回参考にさせて頂いたサイトをご紹介しておきます。検索避けに関しての情報がとても平易な表現で書かれています。自分のサイトは検索避けしないから…という方でも、一度目を通されると知識として覚えておく分には色々と役立つと思います。

検索避け覚書