www.yyyy.com/index.htm(公開中のページ)
www.yyyy.com/xxxx/index.htm(特別な人のみ教えるページ)
2.探すとすればどのような方法があるのですか?
3.ドメインは違っても、同じサーバーであれば探せますか?
ドメインを変えても、複雑なファイル名にしても、
同じサーバでも違うサーバでも、そのまま公開すれば
確実に第三者に見られます。
「隠してる状態」にはなりえません。
htaccessが使えるサーバであればパスワードをかけることを
お勧めします。
「ちょっと見られたくないな」という程度であればjavascriptで
偽装するとか…
やり方はこちら↓でどうぞ。
http://www.yuzuriha.sakura.ne.jp/~akikan/kaigai/kaigai16.html
ありがとうございます。
URLも参考にしてみたいと思います。
1. ドメインが同じかどうかではなく、アクセス制限をかけずにいるのは危険と思います。
2. tamegroさんの言う通り、どこかのクローラが見つけてしまえば危険です。外部リンクを張ればリファラで場所は漏れる可能性があります。
3. クローラが拾わなければ探す方法は(適当にURL打ってみる以外)ありません。
>特別な人のみ教えるページは携帯用のサイトですが、htaccessで設定できるのでしょうか?
出来ます。
というか、私自身携帯で.htaccessで標準認証を設定したページを携帯から使ってます。
ありがとうございます。
携帯でもできますか、何とかやってみます。
1と2に関しては他の方が既に答えられている通り、.htaccess で制限するなどすれば良いです。
ただ、3の同じサーバを使っている他のユーザが探せるか?という質問に関しては「探せます&読めます」が答えです。
■同サーバ上の別ユーザが読める理由
普通の構成だと httpd プロセスは一般ユーザとは別の専用ユーザで実行されているので、httpd にファイルを参照させるには 755 や 644 など誰でも読めるパーミッションにしておかなければなりません。
ということはつまり httpd が読めるファイルは同じサーバ上のユーザならファイルの場所さえ分かれば誰でも読めるということです。
また、「ファイルの場所さえ分かれば」と書きましたが、ファイルの場所も find や locale コマンドで探すことができます。
ディレクトリパーミッションが 711 が途中にある場合は find ではそのディレクトリ以下を探せませんが、localeコマンドならそのデータベースはrootによって作成されるのでそこには全ファイルリストが含まれています。
なので一般ユーザでも locale / とすることで他ユーザのファイルも含む、自分の権限で読み込み可能な読み込み可能な全ファイルリストが取得できます。
つまりWEBで公開できる普通のファイルである限り、同サーバ上のユーザならそれを探して読むことを防げません。
■同サーバ上の別ユーザからも読めなくする方法
但し suexec されたCGIの実行環境がある場合に限り、以下の条件を満たすCGIを作成することで、完全に防ぐことは可能です。
・隠したいデータは 600 のパーミッションのファイルに保存してく(httpdプロセスであろうと他人には読ませない)
・それを読んで出力するためのCGIを711のパーミッションで作成する(httpdはソースは読めないが実行はできる)
・CGIプログラムによるパスワード認証などが無いと隠しデータを出力しないようにする(httpdが実行できるということは同サーバ上の別ユーザも実行できるということなので、実行しただけで秘密ファイルが出力されるような作りでは駄目)
ちなみに同じようなプログラムをPHP(mod_php)で作ることはできません。何故ならPHPの実行には「httpd権限での読み込み」が出来る必要があるからです。
上で説明したとおりhttpdに読めることは同サーバ上の別ユーザも読めるので、例えパスワードがかけてあろうとDBに隠してあろうと、ソースコードにそれらパスワードが必ず含まれている筈なので、ソースが読めるということはそれらパスワードは意味をなさないということになります。
ありがとうございます。
詳しい理由まで書いていただきまして、何となくわかりました。
1.
単純に言うと危険だけど工夫する余地はあります。
www.yyyy.com/xxxx/index.htmの"xxxx'の部分の文字列がランダムな
容易に想像されないようなものであれば見つかる危険性はかなり
低いです。どこからもリンクされていなければ検索ロボットにも
見つけられることはありません。
でも、確実に隠すつもりならパスワードロックをかけないと危険です。
2.
パスワード破りと同じですね。
www.yyyy.com/xxxx/index.htmただし"xxxx"は何らかの文字列、という
形のURLに隠されているとばれてしまえば"xxxx"の部分を総当りで
時間をかけて探されれば見つかる可能性はゼロではありません。
また、隠したページの中に何らかのリンクがあった場合、特別な人が
そのリンクをクリックするとリンク先のサーバーにアクセス元のURL
つまりwww.yyyy.com/xxxx/index.htmが記録されてしまいます。
例えば隠したページにAさんのブログのURLがリンクとして置いてあって、
そのリンクをクリックするとAさんのブログのログに隠したページの
URLが残り、AさんにはそのURLを知られてしまうという意味です。
検索サイトのクローラーが見つけることができるかというと普通は
無理です。でもどこかにリンク情報として漏れてしまえばクローラー
はそれを辿って見つけてしまいます。
3.
共用サーバーの他のユーザーに見つかるか?という意味だと見つかる
可能性はあります。サーバーの構築の方法によりけりですが他の
ユーザーからディレクトリを移動してファイルが見つかってしまう
可能性は否定できません。他にユーザーのいない専用サーバーであれば
サーバー管理者以外の人には見つかってしまうということは無いです。
ありがとうございます。
具体的な説明なのでよくわかりました。
ありがとうございます。
特別な人のみ教えるページは携帯用のサイトですが、htaccessで設定できるのでしょうか?