0

私は、一般的な「guid と int のどちらが優れているか」という質問をしているわけではありません。私はそれを知っています、または少なくとも、どちらにも一方が他方よりも優れているという特定のシナリオがあることを知っていると思います. しかし、チャット アプリケーションを作成している特定のシナリオがあります。すべての主キーを int にしてアプリケーションを開始しました。しかし、少し調査した後、チャットルーム、トーカーなどのさまざまなエンティティ要求のためにユーザーのブラウザーに主キーを渡しているため、アプリケーションにセキュリティ上の欠陥がある可能性があることに気付きました。後続の主キーが推測される可能性があるため、ユーザーが他のユーザーのセッションと状態を変更する可能性があることに同意するでしょう。これを防ぐために、GUID を主キーとして使用することを検討していましたが、別の考えが頭に浮かびました。パフォーマンスについての考え。これはチャット アプリケーションであるため、GUID を使用すると、アプリケーションに大きな負荷がかかる場合、たとえば数万人または数十万人のユーザーが同時にいる場合、パフォーマンス面でコストがかかります。たとえば、ここで選択するのに十分な情報がありません。私の質問は、要するに、主キーの推測を難しくするために主キーを GUID に変更する必要がありますか、それとも GUID に頼らずにアプリケーションを保護する方法が他にあるのでしょうか。質問が十分に明確でない場合は、お知らせください。明確にいたします。ありがとうございます。主キーの推測を難しくするために主キーを GUID に変更する必要がありますか、または GUID に頼らずにアプリケーションを保護できる他の方法がありますか。質問が十分に明確でない場合は、お知らせください。明確にいたします。ありがとうございます。主キーの推測を難しくするために主キーを GUID に変更する必要がありますか、または GUID に頼らずにアプリケーションを保護できる他の方法がありますか。質問が十分に明確でない場合は、お知らせください。明確にいたします。ありがとうございます。

4

1 に答える 1

4

いいえ、主キーをGUIDに変更する必要はありません。これは必ずしも追加のセキュリティを提供するわけではなく、隠すことによるセキュリティであることは間違いありません。

GUIDを使用すると、攻撃者が別のユーザーのIDやチャットルームの一意のキーを推測することが不可能になります。ただし、IDが送信された場合にIDが表示され、現在心配しているアクションを実行できるようになるのを止めることはできません。

代わりに、ユーザーがデータベースに対してリクエストを行う場合、そのデータへのアクセスが許可されているかどうかを検証する必要があります。たとえば、自分のユーザー情報、または他のユーザーに関する基本的なユーザー情報(ハンドルなど、電子メールアドレスは取得できない)のみを取得できるようにする必要があります。

于 2013-01-12T01:28:25.187 に答える