http://hoge.com/以下にhatena.htmlというファイルを作りたいのですが誰にも見られたくありません。
http://hoge.com/hatena.htmlというリンクはどこからも貼っておらず、同じディレクトリ内にindex.htmlはあるなら、
基本的に安心しても良いのでしょうか?もし他にさらに安全にする方法があったら教えてください。
なお、この質問はhttp://q.hatena.ne.jp/1274584988のコメント欄にあるスクリプトを使うかどうか判断するためにしてます。
以上、よろしくお願いします。
ディレクトリにアクセス制限を掛けておくのはいくつかあります。
・基本認証
IDとパスワードを間違いなく入力できたユーザだけに閲覧を許す方法。
説明は長くなり過ぎるので参考サイトを。
http://allabout.co.jp/internet/hpcreate/closeup/CU20020910A/
・特定のディレクトリへ、ブラウザ(=ウェブサーバ経由)でのアクセスを全て禁じる。
.htaccess というファイルに、deny from all とだけ書いて目的のディレクトリに保存しておく。
FTPでのアクセスは可能。(ウェブサーバ経由でないため)
他のディレクトリのスクリプトは読み出せる。
例えば、読出用のスクリプトを用意して、パスワードやキーワードを付加して呼び出さないと表示できないようにしてけば、スクリプト中に文書を組み込む必要は無い。
hatena.htmlではなく、hatena.html.phpにしてはいかがでしょうか?
そして、hatena.html.phpではリファラやユーザエージェント、アクセスドメインなど、間違いなく、自分のサーバからのアクセスと認識出来た場合のみ、ヒアドキュメントでphpの中身を表示する。それ以外は、表示しない。
.
例えば下記の例の様に、アクセスする際、UAに乱数をまぜるなど、他人が絶対に使わないようなUAに偽装していればまず大丈夫ではないでしょうか?
.
このようにすれば、元となる、phpの中身を見られない限り、まず、hatena.html.phpから出力したphpのヒアドキュメントは表示されないかと思います。
.
_____例_____
$context = stream_context_create(array('http' => array(
'method' => 'GET',
'header' => 'User-Agent: KOKO WO RANNSUU NADO NI SURU',
)));
$url = "http://hoge.com/hatena.html.php";
$data = file_get_contents($url, false, $context);
私の今の知識だといただいた回答で大丈夫かどうかと判断できませんが、
これから勉強して取り入れたいと思います。
ご回答ありがとうございました。
http://www.google.co.jp/search?num=100&hl=ja&safe=off&rlz=1T4GGL...
このソフトはサーバ上のhtml、htmを総当たり方式でリクエストをかけて
リターンコードでファイルの有無を探し出します。
基本的にはいまはオフィシャル的に配布してるところはなさそうですが
探せばどっかに転がっていると思います
ということで、リンクを張ってなければ100%安全というわけではないです。
おとなしく制限ディレクトリ作ってその中に格納するのが無難じゃないでしょうか
>ということで、リンクを張ってなければ100%安全というわけではないです。
想像できることではありましたがいろいろあるもんですね。
どんな方法を使っても完全シャットダウンということはないでしょうから、
可能性がほぼゼロなら回答の要件を満たすとします。
制限ディレクトリというのはどうしたらよいかとか知りません。
ただこういうことはいつかちゃんと勉強しなければならないと思ってたので良い機会かもしれません。
ご回答ありがとうございました。
「.htaccess」を使う方法があります。
そのWebページの一番上の階層の中に、「.htaccess」という名前のファイルを作成し、それをメモ帳で開きます。
あとは下記のサイトを参考にどうぞ。
>「.htaccess」を使う方法があります。
そう。これもちゃんと勉強しなければならないものですね。
ご指摘ありがとうございます。
ディレクトリにアクセス制限を掛けておくのはいくつかあります。
・基本認証
IDとパスワードを間違いなく入力できたユーザだけに閲覧を許す方法。
説明は長くなり過ぎるので参考サイトを。
http://allabout.co.jp/internet/hpcreate/closeup/CU20020910A/
・特定のディレクトリへ、ブラウザ(=ウェブサーバ経由)でのアクセスを全て禁じる。
.htaccess というファイルに、deny from all とだけ書いて目的のディレクトリに保存しておく。
FTPでのアクセスは可能。(ウェブサーバ経由でないため)
他のディレクトリのスクリプトは読み出せる。
例えば、読出用のスクリプトを用意して、パスワードやキーワードを付加して呼び出さないと表示できないようにしてけば、スクリプト中に文書を組み込む必要は無い。
いつもお世話になります。
>IDとパスワードを間違いなく入力できたユーザだけに閲覧を許す方法。
リンク先をみて勉強させていただきます。
大変参考になりました。
誰にも見られたくないが、自分ではhttp://・・・でアクセスしてみたい、という要件かと思います。
方法としては、
1.WEBサーバ(apache)などの機能(Basic認証など)で、認証を要求する(ID/パスワードを入力してログインさせる)ようにする。
2.ファイル名をパスワード代わりにする(hatena_password=abcdefg.htmlなど)
があります。
1は、見れる人を限定するwebサイト全般で使われている自然な方法です。当然、ID/パスワードを入力してログインする手間が発生しますが、
利便性とセキュリティのトレードオフです。
2は、結局ファイル名がバレなければアクセス出来ないので、簡単に1と同等の効果が得られるかと思います。
また、webサーバのログなどから、他の誰もアクセスしていないかチェックするなどすると良いかもしれません。
>利便性とセキュリティのトレードオフです。
今回はセキュリティが最優先なのでまったく問題ないです。
>webサーバのログなどから、他の誰もアクセスしていないかチェックするなどすると良いかもしれません。
これくらい用心してちょうど良いかもしれませんね。やってみることにします。
大変参考になりました。ありがとうございます。
いつもお世話になります。
>IDとパスワードを間違いなく入力できたユーザだけに閲覧を許す方法。
リンク先をみて勉強させていただきます。
大変参考になりました。