4

SQL Server データベースにデータを保持する asp.net mvc アプリケーションを使用しています。システムに明らかに顧客を格納する顧客テーブルがあります。顧客の id は、顧客の一意の識別子を保持する ID 列であり、新しいレコードごとに 1 ずつ自動的に増加します。

mvc アプリの特定のコントローラー アクションには、顧客 ID が含まれます。get リクエストでは、セキュリティ ループ ホールが作成されることを理解しています。これにより、外部機関がデータベース構造などに関する知識を得ることができます。

コントローラー アクションで、顧客 ID の使用を別のよりあいまいなフィールドに変更することは非常に困難です。安全な方法でIDを公開する他の方法はありますか? IDを別のIDにマッピングしてセッションに保存し、この代替IDを公開することを考えていましたが、残念ながらセッションストレージは利用できません. 特定の状況では、公開された ID をユーザー セッションを超えて維持する必要がある場合があります。私が調べたもう 1 つの方法は、ID 列のシードを 1 以外の数値 (乱数 88 など) に増やすことです。これは、公開された ID が外部ユーザーにとってあまり意味がないことを意味します。

上記について何か考えや提案はありますか?

4

2 に答える 2

0

私があなたを正しく理解していれば、Guid のような別の ID にマッピングして Guid を渡すことはうまくいくはずです。セッションで CustomerId を「保存」する必要はありません。Guid を使用して、再度必要になったときに CustomerId を呼び出すことができます。

于 2013-03-18T23:45:48.143 に答える
0

本当に心配な場合は、許可されたアクション (ユーザーのログインが必要) でのみ表示されるようにしてください。ただし、主キーを公開することについて、本質的に「安全でない」ことは何もありません。キーは、データベースのコンテキスト外では意味がありません。誰かがデータベースにアクセスした場合、特定の顧客の ID を知っていることは問題ではありません。

于 2013-03-19T03:33:58.967 に答える