0

アプリケーションはまだ完成していません。今のところ、パスワードとデータベースの情報はデータベースで暗号化され、キーを使用してアプリケーションで復号化されています。

しかし、データベース情報を暗号化されたテーブルに保存できれば、ユーザーデータベースの組み合わせごとに1つのエントリがあり、そのような情報はハッシュされたユーザーパスワードをソルトとして使用して暗号化されます(ユーザーテーブルと同じハッシュではなく、もちろん)。そのため、攻撃者が何らかの方法でデータベースまたはアプリケーションを手に入れたとしても、すべてのデータベース パスワードを読み取ることはできません。そのようなデータベースにアクセスできるユーザーのパスワードが必要になるからです。

そして私の考えは、ユーザーがログインすると、彼のパスワードはハッシュされ (データベースソルトのように)、ユーザーが接続している間、それを使用するために短い寿命の Cookie として保存されるというものでした。

私は考えていましたが、攻撃者が私のアプリケーションで実行を取得した場合、攻撃者は各要求で接続ユーザーの Cookie にアクセスできる可能性があります。

もう 1 つの欠点は、ユーザーがパスワードをリセットできなかったことです。パスワードをリセットしても、パスワードを解読してデータベースにアクセスできなかったためです。

それで、あなたはこれについてどう思いますか?これは良いアプローチですか?あなたならどうしますか?

4

1 に答える 1

1

ここに誤解があります。暗号化だけでは、ビジネス/会社/データ全体を保護することはできません。

データを暗号化し、ユーザーが常にそれらのデータを復号化して使用する場合、ハッカーがサーバーにアクセスできるようにすると、ハッカーは他のユーザーと同じようにデータを復号化できるため、データを中継することはできません。

データを保護するには、次のような他の対策を講じる必要があります。

  • Web アプリケーション コードを分析し、あらゆる種類の SQL インジェクション、コード実行、LFI、RFI、XSS などを防止します。

  • データベース アクセス リストを分析します。ユーザーがユーザー名/パスワードを知っている場合でも、外部 IP でデータベース サーバーにアクセスできるようにしないでください。適切なアクセス リストでデータベースを保護します。ページのほとんどの部分がテーブルにデータを入力せず、選択クエリのみを実行する場合は、SELECT 権限のみをユーザーに付与し、このユーザー/パスを SQL クエリ用に定義します。

  • サーバーソフトウェアを常に最新の状態に保ちます。サーバー OS、Web サーバー アプリ、または Web アプリ自体の可能性があります。

上記の方法でデータ/サーバーを保護できます。暗号化されている使用中のユーザーデータベースを常に全体的に暗号化することは良い考えではないと思います。速度/パフォーマンスが低下し、ハッキングを防ぐのに役立ちません.

于 2013-01-22T04:45:54.133 に答える