1

サイト セキュリティ フレームワークに関して言えば、「独自のものを作成しないでください」というマントラを理解しています。

とにかくほとんどの場合。

テキストメッセージをシステムに統合するサイトで共同作業を行う予定です。

ユーザーのデータを保護するために十分にテストされた既存のセキュリティ フレームワークを使用したいのですが、ユーザーの電話番号も保護する必要があります。

私は、ユーザーの携帯電話番号のリストが乗っ取られ、スパムされていることに責任を負いたくありません。

コミュニティはどのような提案を提供できますか?

4

3 に答える 3

7

ここでは、パスワードに適用される手法は適用できないことに注意してください。ソルト化およびハッシュ化されたパスワードを保存することはできますが (そうすることの価値については議論の余地があります)、電話番号では機能しません。

誰かがあなたのサーバーを乗っ取った場合、彼らはサーバーができることなら何でもできます。これには電話番号の回復が含まれる必要がありますが、適切にハッシュされている場合はパスワードの回復は含まれません。したがって、電話番号は、機密データを保護する特定のケースにすぎません。

電話番号が本当にアプリ内の唯一の機密データである場合は、テキストを送信するアプリの部分を壁で囲み、電話番号を非対称に暗号化することを検討できます。別のプロセス (または別のマシン) で、電話番号を復号化するキーを持つアプリを実行します。このアプリのインターフェイスには、暗号化された no と送信するメッセージを取得する 1 つの関数が含まれている可能性があります。このアプリをシンプルに保ち、鼻水をテストして監査します。それを外の世界から隠すか、認証を使用してリクエストが本当にメイン アプリからのものであることを証明するか、またはその両方を行います。

アプリのデータベースも主要部分も電話番号を解読することはできませんが (たとえば、それらを検索することはできません)、データベースに追加するために暗号化することはできます。

一般的な手法は「権限分離」と呼ばれるもので、上記はほんの一例です。

通常、電話番号は、暗号化の前にランダム データでパディングする必要があることに注意してください (ハッシュ化されたパスワードのソルティングなど)。そうしないと、秘密鍵を知らなくても、「暗号化された電話番号 X ですか?」という質問に答えることができます。スパマーがあなたの配布リストを盗むという視点からすれば、それは問題ではないかもしれませんが、ブルート フォース攻撃が可能になることを意味するため、あなたの電話番号が安全に保管されていると主張する視点からは問題です。電話番号、そして特定のユーザーのためにそれを大幅に絞り込むことが可能かもしれません.

申し訳ありませんが、これはあなたの質問に直接答えるものではありません: 特権の分離を実装するのに役立つ PHP フレームワークがあるかどうかはわかりません。

[編集して追加: 実際、「特権アプリをシンプルに保つ」という見出しの下では、フレームワークをまったく使用したくない場合があります。それは、フレームワークの作成者がはるかに大量の (しかしより広く使用されている) コードにバグを残すよりも、実際に必要な少量のコードにバグを残す可能性が高いと考えるか、または低いと考えるかによって異なります。書きました。しかし、それは非常に単純化しすぎです。]

于 2008-09-23T13:46:21.747 に答える
1

PHP 用のホール セキュリティ システムのリリースを発表できることをうれしく思います。

このプロジェクトは、Spring Security (以前の Acegi Security System for Spring) によって Java で提供される種類のセキュリティを PHP にもたらすことを表しています。哲学が同じであるため、Spring Security ユーザーにとって魅力的になるように設計されています。これは、PHP サイトにセキュリティを追加する目立たない方法です。Spring Security は Spring IoC/DI を使用しているため、基板 IoC/DI を使用して構成します。

サンプル構成はフレームワークに同梱されており、次のように使用できます。

$context = new substrate_Context(
    './path/to/hole-security/hole-security-config.php'
);

$context->execute();

$hole_Security = $context->get('hole_FilterChainProxy' );
$hole_Security->doFilter();

選択した MVC のブートストラップの前に、フレームワークのブートストラップ コードが実行されることを確認してください。

ウェブサイト: http://code.google.com/p/hole-security/

ドキュメンテーション: 今のところ、Spring Security のリファレンス ドキュメントが適用される場所で使用できます。hole-security は同じ構成方法を使用するため、Acegi Security リファレンス ドキュメントを使用して一般的なアイデアを得ることができますが、Spring Security に基づいていることに注意してください。

ライセンス: Apache License Version 2.0 の下でリリースされています。

機能: ホール セキュリティは、環境のセキュリティ要件を採用できるプラグ可能なセキュリティ システムをもたらします。現在、最初のリリースであるため、非常に単純なセキュリティ システムがありますが、プロジェクトに追加する新機能を提案または要求できる基本的な基盤があります。

現在の機能:

  1. 概念実証としてのメモリ内 dao 認証では、データベースまたは保存場所からユーザー データを取得する、好みの dao または実装に切り替えることができます。将来のリリースでは、PDO ベースの実装が作成されます。

  2. URL パターンに適用される構成済みフィルター。Url パス マッチャーをプラグインすることができます。現在、ant スタイルのパス マッチャーが同梱されています。

  3. Authorization Manager をアプリケーションで使用して、どこで何かを行うかどうかを決定し、常にサブストレート コンテキストから参照を取得できます。

  4. hole_HttpSessionContextIntegrationFilter が適用されている場合、アプリケーションの任意のコードからアクセスできる共有セキュリティ コンテキスト。このコンテキストを使用して、セッション オブジェクトを直接使用せずに、セッションに関連する情報を保存できます。

  5. カスタム ログイン ページを使用して、hole_AuthenticationProcessingFilter 設定に従ってカスタマイズするか、カスタム ログイン ページに従って、hole_AuthenticationProcessingFilter をカスタマイズできます。

  6. デフォルトのパスワード エンコーダーは、エンコードなしのプレーン テキストです。将来のリリースには、MD5、Sha ベース、Base64、およびその他の関連エンコーディングの実装が含まれます。独自のパスワード エンコーダーを作成して構成することができます。

  7. リクエストに使用されていないフィルタのようなものがロードされない場合、すべてのオブジェクトが必要に応じてロードされます。これにより、アプリケーションのパフォーマンスが向上します。ホールセキュリティに関連する機能は他にもあります。

于 2010-11-03T19:06:25.017 に答える
1

電話番号を取得できるようにする必要があるため、電話番号を保護するために実際にできる唯一のこと (データベースを保護するために行う通常のことを超えて) は、電話番号を暗号化することです。これは、次のことを行う必要があることを意味します。

  • データベース ダンプをうっかり漏らしてしまった場合に、キーが漏えいしないことを確認してください。
  • 誰かがあなたのシステムに SQL を挿入したときに、システムが電話番号を役に立たないように解読しないようにしてください。

もちろん、独自に展開しないという推奨事項は引き続き適用されます。妥当なキー長を持つ AES またはその他の評判の良い暗号を使用してください。

于 2008-09-23T13:42:22.300 に答える