プロが教えるわが家の防犯対策術!

perlによるCGIスクリプト中にパスワードを保存しておきたいのですが、ファイルのパーミッションがサーバにより自動的に決められてしまうため、スクリプトのソースファイルは他のユーザから比較的簡単に見れてしまいます。

掲示板のマスターパスワードなどはcrypt関数を使ってあらかじめencryptされたパスワードをスクリプト中に保存しておけば、ソースを見られても元のパスワードが分かりませんが、スクリプトから他のスクリプトのパスワード認証を通らなくてはならない場合、生のパスワードをスクリプト中に保存しなければならず、このままではパスワードが見られてしまいます。

何かいい方法はないでしょうか?
perlccはそのサーバでは使えないので、ソースをコンパイルする以外の方法があれば教えて下さい。

A 回答 (3件)

私も複数CGIにまたがってパスワード要求する際の<br>


セキュリティを検討してる最中です。<br>
「スクリプトから他のスクリプトのパスワード<br>
認証を通らなくてはならない」というのは、<br>
「1回パスワード認証した後は、その後の認証を<br>
ユーザに意識させず自動的に行う」という認識で<br>
よろしいでしょうか。<br>
<br>
その解釈が正しいとして書きます。<br>
「サーバでパーミッションが与えられない&サーバ<br>
に読まれたくないデータを置く」というのは矛盾して<br>
ますね。生パスワードをサーバに保管する考えは<br>
無くしたほうがいいです。じゃ一回認証したパス<br>
ワードをユーザのCookieに保存し、次の認証に使う<br>
のはどうでしょう?<br>
<br>
ありきたりですが解釈が間違ってたらすみません。<br>
<br>
私の場合は最初の認証ページをCGIが使えないローカル<br>
に置く必要があり、JavaScriptを使うのもやなの<br>
でGETメソッドに載せる生パスワードそのものを<br>
複合可能なcrypt関数以外の方法で暗号化しようと<br>
思ってリサーチしてます。パスワード以外の引数も<br>
暗号化したいですし。<br>
    • good
    • 0

public_html外にファイルを置けば良いのでは?


ちなみにどこのプロバイダですか?
通常は、public_html外にデータファイルを606で置けば参照されないはずですが?

nobody権限になると言うファイルはデータベースファイルとかですか?最初からそのファイルの空をアップしておくのはだめですか?そうすればパーミッションは所有者になるはずですが?

どうしてもソースを隠すのであればもう少し待っててください。今日はもう寝るので・・・。
    • good
    • 0

.htaccessは使えるんですか?


アクセス制限をかけてみてはどうですか?

意味違ってたらごめんね。
ソースを見られてしまうって事?
パスワードが見られてしまうってところがイマイチわかんないッス?!

この回答への補足

はじめまして、chirorin200xさん。
.htaccessは使えます。現状でもwebブラウザ経由でcgiを見に来た人にはソースは見られませんが、同じサーバを利用している人からは、perlで簡単なスクリプトを使えばソースを見られてしまうと言う意味です。実際に同じサーバ内のcgiソースファイルを覗くことができました。悪意が有ればそこからパスワードを読み取ることもできます・・・

.htaccessを使っても結局はwebブラウザ経由のアクセスにたいする制限がかけられるだけであって、local serverからの訪問に対しては効果が有りません。
きちんと管理をしているサーバなら、cgiはnobody権限で動作しないようになっているのですが、使用しているところはそうではないので困っています。

perlのソースフィルタの使い方を詳しく解説しているサイトがあれば教えて欲しいです。よろしくお願いします。

補足日時:2000/11/22 01:14
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!