QA@IT

cakePHP 認証方法で3つ(Form,Basic,Digest)ありますが、Formの認証でWEBサービスをつくるのはセキュリティ上よくかったりするのでしょうか?

3189 PV

CakePHPのぺーじでは、下記のような説明がありますが、
開発初心者の為、理解が難しくて困っています。
どなたか分かる方いらっしゃいましたらよろしくお願いいたします。m(_ _)m

<参考ページ>
認証 — CakePHP Cookbook v2.x documentation
http://book.cakephp.org/2.0/ja/core-libraries/components/authentication.html

<参考部分>
・FormAuthenticate では、
 POSTされたデータをもとに認証を行うことが可能です。
 通常これは、ユーザが情報を入力するログインフォームです。

・BasicAuthenticate では、
 Basic HTTP 認証を使った認証を行うことが可能です。

・DigestAuthenticate では、
 ダイジェスト HTTP 認証を使った認証を行うことが可能です。
 デフォルトで AuthComponent は FormAuthenticate を使用します。

回答

BASIC認証はパスワードが平文で流れるので論外として、

Digest認証はその欠点をいくつか埋めるものとして存在します。
実装や古いモードによっては脆弱性も増しますし、暗号化方式も選択できません。
単体では Man In The Middleにも弱いなど完璧ではありません。
しかし平文ではないという利点があります。

Form認証に関しては実装次第ですが、
きちんと実装すれば特別よくないということはないでしょう。
きちんとしないとBASIC認証ぐらい危険にもなりえます。
SSLが利用可能であれば併用して実装することが望ましいです
(サービスとして提供する段階では必須といっていいでしょうね、共用SSLや安価なSSLも出てきてますので)。

編集 履歴 (0)
  • ありがとうございます!(> <)
    そうなんですね。Form認証で書いていて心配に思っていたんですが、実装次第ということなので、セキュリティを高めれる書き方をもっと調べて、また、正式なリリースまでにSSLの利用も検討してみようと思います。
    -
ウォッチ

この質問への回答やコメントをメールでお知らせします。