人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Perl についての質問です。

大変初歩的な事なのですが、HTMLでのフォーム上でパスワードと
ユーザーIDを入力してもらい、それをPOSTで受け取ります。

そこで、疑問なのですが、CGIのソース内にパスワードとユーザーIDを
正しいかどうか判定する場合、皆さんはどうなさっているのでしょうか?

自分は、外部テキストファイルにパスワードとユーザーIDを書き込んでおき、
それをOPENで読み込んで、比較しています。

しかし、これはCGIのソースなどを読まれた場合、あっさりばれてしまうのではないでしょうか?

他の方はパスワードを比較する場合などはどうされているのでしょうか?


●質問者: zachouR
●カテゴリ:コンピュータ インターネット
✍キーワード:CGI HTML open Perl ソース
○ 状態 :終了
└ 回答数 : 6/6件

▽最新の回答へ

1 ● たか
●19ポイント

外部テキストファイルへのパスワード、IDの書き込みを暗号化させればどうでしょう

パスワード暗号化

http://www.hidekik.com/cookbook/p2h.cgi?id=makecrypt


パスワードチェック

http://www.hidekik.com/cookbook/p2h.cgi?id=chkpwd

◎質問者からの返答

ありがとうございます!


2 ● ootatmt
●19ポイント

基本的にそのような処理になると思います。

パスワードファイルは外部からアクセスできない場所に置いておきます。

また、外部ファイルに保存しておくパスワードはMD5ハッシュなどで暗号化しておき、そのファイルが読まれても直接パスワードが分からないようにしておくといいと思います。


パスワードが正しいかどうかを比較するときには、暗号化されたパスワードと入力されたパスワードのハッシュを比較すれば正しいかどうかが判定できます。

※ ここでの暗号化というのはハッシュ値のことです。復号できないので正しくは暗号ではありません。


http://www.ipa.go.jp/security/awareness/vendor/programming/b09_0...

この中の「メッセージダイジェストを使った認証」が参考になるかと思います。

◎質問者からの返答

ありがとうございました、参考にさせていただきます!


3 ● b-wind
●18ポイント

unix_md5_crypt - 相互に利用可能なMD5ベースのcrypt()関数を提供します

MD5 等のハッシュ関数でハッシュ化しておき、それを比較する。

ハッシュ関数は一方向性なのでそのデータから元のパスワードを再生成する事は不可能。

比較するときは POST されたデータをパスワード生成時と同じ方法でハッシュ化すれば確認できる。

◎質問者からの返答

いつも、ありがとうございます!


4 ● nandedarou
●18ポイント

私は、データベースに保存しています。


保存するパスワードはMD5など不可逆性の暗号で暗号化して保存。

POSTされたパスワードを暗号化して、保存されたパスワードと一致すれば、ログイン。

こうすれば、もし、見られてもある程度大丈夫です。

外部テキストファイルに保存する場合も、パスワードは、暗号化しておくのがよいでしょう。


また特に、外部テキストファイルに保存する場合は、Webから直接アクセスできないように工夫する必要があります。

(A)public_htmlなどの公開フォルダの外にパスワードファイルを置く。

(B)public_htmlなどの公開フォルダ以下におく場合は、そのファイル専用のフォルダをつくり.htaccessの設定で、Webからアクセス不可能にする。

(C)CGIファイル内にパスワードを書く場合、他のファイルからインクルードされた場合のみ動作するようにし、もし、直接アクセスされた場合は、動作を停止するようにコードを書く。

http://q.hatena.ne.jp/answer ダミー

◎質問者からの返答

DBは、ある事情で使えないのですが、今後の参考にさせていただきます!


5 ● kurukuru-neko
●18ポイント

入力されたパスワードを暗号化して

保存された暗号化済みデータを比較する方法

もある。

mcrypt

http://jp.php.net/manual/ja/ref.mcrypt.php

http://pear.php.net/

◎質問者からの返答

ありがとうございます!

参考になります!


1-5件表示/6件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ