2人のユーザーが同時にサービスシステムにログオンし、サービス一覧のgridviewを見ていると、問題が発生します。 user1がgridviewをフィルタリングする検索を実行し、user2が別のページをクリックした場合、user2はuser1が実行した検索結果を表示します。つまり、ある企業が他の企業のデータを見ることができます。ASP.NETおよびSQL Serverのセキュリティ問題
C#/ ASP.NET 3.5で開発されたASP.NETアプリケーションです。データはSQL 2000データベースに格納され、ストアドプロシージャに大きく依存してデータを更新、選択、および削除します。ユーザーが表示できるデータに制限されている複数のユーザータイプがあります。たとえば、その会社に関連するデータしか見ることのできない会社の使用があります。
私が見たことから、セキュリティはフロントエンドのIf文によって処理されます。たとえば、userlevel = 1の場合、userlevel = 2の場合はこれを行います。これらのステートメントは、グリッドの列を表示または非表示にしたり、データを返すためにクエリを実行したり、必要なその他の制約を与えるために使用されます。企業ユーザーの場合、コードの背後にあるコードはユーザーに割り当てられたcompanyidを取得し、そのcompanyid(サービス、船舶など)に関連付けられたすべてのデータの結果を返すためにクエリで使用します。
これを修正するための推奨事項は高く評価されます。
を保護しますか? – Stu
どうしたらいいのでしょうか?一時テーブルを使用するのではなく、通常のテーブルがバックエンドで作成/破棄されていますか?または、データがUIに送信される前に、アプリケーションの静的変数にロードされていますか?これがどうやって起こるかわからない? – Sam
私はこの問題を完全に理解しているとは思わない...会社がユーザーからフェッチされてクエリに送信されている場合...そして、おそらくクエリが企業情報をフィルタリングしているのであろうか。間違ったデータが戻ってくるでしょうか? – Rikon