4

従う場合開発者は公開 Web サイトを構築する前に知っておくべきことは何ですか? 認証では、どのようなオプションがありますか?

私は PEAR を使ったことがなく、これから始めるつもりもありません。phpGALCについて読んだことがありますが、まだ試していません。

認証後、権利/アクセスレベルが開始されます。私は、柔軟性があまりないことに加えて、ユーザーができることとできないことを決定する単一の tinyint 値を使用することはあまり好きではありません。私は最近、各ユーザー タイプがアクセスできるアクセスの種類を指定するセクション システムを作成しましたが、もっと良いものはありますか?

言語が必要な場合は、PHP5.

4

5 に答える 5

1

ACLとAuthは、現時点で私が取り組んでいるものです。私は現在CakePHPを使用しており、ACL用の広範な(単純ではありませんが)モジュールと、認証を行うための簡単な方法を提供します。私も答えに興味があります。

私が集めたもの:

  • 入力、特にブラックリストとホワイトリストの違いを検証する方法を学ぶ
  • メールの検証パターンを慎重に検討してください
  • どの言語をサポートする必要があるかを検討してください(厄介な小さなアクセント、チルダなどが名前の邪魔になります(例:AñagazaやAlérta))。
  • 自分でロールするか、事前に構築しますか?
  • ACL:シンプルに保つか、全体を飲み込む可能性があります。
  • CSRFとXSRFに注意してください!
于 2009-01-08T13:48:41.233 に答える
1

認証はかなり簡単です。ACL などを介した承認は、複雑になる可能性があります。

認証は通常、ユーザー名とパスワードを保存されている資格情報と照合するだけです。SSL を使用し、ソルトを使用してパスワードをハッシュするだけです。

承認は野獣になる可能性があり、ソリューションは要件によって異なります。PhpGALC と Zend Framework ACL コンポーネントを試すことができます。どちらのオプションにも、役割、リソース、およびオプションの権限がありますが、名前はすべて異なります。Zend ACL はよりシンプルで汎用的です (ルールはコードで簡単に定義でき、データベースは必要ありません)。ロール、リソース、および特権が静的でない場合、Zend ACL を使用して、データ ストアから ACL を設定するコードを作成する必要があります。phpGALC の大きな利点は、Web GUI があることです。GUI は使いにくいと思いましたが、ACL をよく理解していない限り、ロールやリソースの継承などの ACL の複雑さを考慮して、データベースを直接変更するのは危険です。

于 2009-01-08T19:13:57.303 に答える
0

ユーザー認証は、アプリケーションが無料アクセスを拒否するページにユーザーがアクセスしようとすると、ユーザーをログページにリダイレクトし、ログインが成功すると要求されたページに戻ることを確認します。ケーキのデフォルトAuthのそのような実装の1つは、以下の落とし穴、アプローチ、および方法で説明されています。

http://enbake.com/cakephp-user-authentication-auth-component

フレームワークはあなたを制限しません。ただし、既存のモジュールとより整理されたコードを使用して開発の速度を上げることができます。興味があれば、白黒フレームワークの比較を表示できます。

于 2011-02-20T17:32:03.480 に答える
0

私は、あまり柔軟ではないことに加えて、ユーザーができることとできないことを決定する単一のtinyint値を使用することの大ファンではありません。

それは異なります...値を整数またはビットフィールドとして使用することを指しますか?

単に数字として使用している場合(レベル5のユーザーはレベル1〜4のユーザーのすべての機能に加えて、もう少し多くの機能を備えています)、そうです、それはあまり柔軟ではありません。

ビットフィールドとして使用している場合は、8つの機能(セット)が提供され、ユーザーは任意の組み合わせでオンまたはオフにできます。私はそれを柔軟と呼びます。また、8つの機能では不十分な場合は、tinyint(8ビット)をsmallint(16ビット/機能)、int(32ビット)、またはbigint(64ビット)に変更するのは簡単です。私たちのほとんどが作成する可能性のあるほぼすべてのアプリケーションに十分です。

于 2009-01-08T13:56:40.780 に答える
0

ほとんどのフレームワークには認証モジュールが組み込まれています。したがって、Zend、CakePHP、Code Ignighter などをチェックアウトすることをお勧めします。

また、データのエスケープとエンコードの違いも混乱を招きがちです。データがエンコードされてからエスケープされると、物事はより柔軟になります。

于 2009-01-08T14:03:31.750 に答える