CGIで利用するファイルを直接見ることができないようにするには?
[上に]
[前に]
[次に]
つんつん
[E-Mail]
2000/03/21(火) 16:53:11
CGIの勉強を始めて掲示板のプログラムを書いています。
CGIの中で書き込まれたログをbbs.datというファイルに
保存しているのですが、このファイルは
http://xxx.xxx.xxx.xxx/~username/bbs.dat
というようにブラウザから直接指定すると見ることが
出来てしまいます。これではパスワードとか保存するのに
非常に不安です。
今のところファイル名をでたらめな名前にすることしか
回避策が思い浮かびません。
何か良い方法があれば教えてください。
ウメボシ殿下
2000/03/21(火) 17:00:23
public_htmlの外に置く。
びーだま
[E-Mail]
2000/03/21(火) 17:08:17
サーバーによって、設定が違うので、一概に、public_html が
あるとは、言えませんが、ウメボシ殿下 さんが言っていることは、
要するに、ドキュメントルート配下(Webに公開されているディ
レクトリ)からファイルを外すことですね。
プロバイダによっては、ログイン時のパスがそのまま、ドキュメント
ルートになっており、この外にファイルを置けないようになっている
場合もありますね。
そのようなときは、.htaccess などの設定ファイル(これは、Apacheの場合)にて、そのディレクトリをWebで閲覧できないようにして、
その中にファイルを入れておくということでも対応出来ます。
rakmn
2000/03/21(火) 17:19:11
単純な話、拡張子を「.cgi」にすればいいんじゃないでしょうか?
ふじ
2000/03/21(火) 17:29:58
Apache の場合、.htaccess で、
ForceType application/x-httpd-cgi
とするとか。
全てのファイルを CGI として実行しようとするので、
中身はみられません。
楓
2000/03/21(火) 17:45:28
びーだま さんのに にてるけど
.htaccessでサーバ以外のIPを弾いたディレクトリにおけば良いのでは?
つんつん
[E-Mail]
2000/03/22(水) 23:54:42
[[解決]]
色々なご意見ありがとうございました。
.htaccessの設定でうまくできました。
たれ
2000/03/23(木) 13:48:03
パーミッションを0600にしておけばブラウザからの閲覧にたいしては
Forbidden出してくれるはずです。
ふじ
2000/03/23(木) 14:56:23
> パーミッションを0600にしておけば
所有者以外見られなくなります。
CGIが所有者権限で動くなら良いですが、CGI が nobody で動いているサーバだと、
「ブラウザからは見えるけど、ユーザーアカウントで(FTPなどで)は見られない」
ことになりますよ。
たれ
2000/03/23(木) 15:01:50
>CGIが所有者権限で動くなら良いですが、CGI が nobody で動いているサーバだと、
ああ、なるほど。
そこまで頭が回りませんでした。失礼しました。
でも、許すならこっちが簡単ですよね。
[上に]
[前に]
[次に]