0

私は既存の Web ベースのアプリケーションに取り組んでいます。

ここで、URL ハッキングと呼ばれるものからアプリケーションを保護する必要があります。たとえば、customerId 1 の顧客がログインしてプロファイルを表示している場合、次の http get 変数がアドレス フィールドに表示されます: customerId=1. 顧客が customerId=2 を設定して別の顧客のプロファイルを表示できないようにする必要があります。

問題は、アプリケーションが既に本番環境にあり、正常に動作しているため、この変更に関して変更を最小限に抑える必要があることです。

これはどのように達成するのが最善ですか?

提案/コメントはありますか?

4

2 に答える 2

3

ユーザーが自分のプロファイルの変更のみを許可されるべきなのに、なぜ URL に ID を与えるのですか? これは必要ないと思います。代わりに、SecurityConext から現在のユーザーを取得し、そのプロファイルを ID なしで URL に表示します。

あなたがコメントで与えた新しい情報で、私はsthを提案します。このような:

URL で指定された orderid が現在のユーザーに属しているかどうかを確認するだけです。あなたは「通常の Web ベースのアプリケーション」を使用していると言っているので、サーブレット/jsp ベースを想定しています。サーブレットでは、次のようにします。

int orderId = Integer.parseInt(request.getParameter("orderId"));
String username = request.getUserPrincipal().getName();
/*now you need to check if username match with the username of the order e.g. by using hibernate to get the order by id and check its user and if not throw PermissionDeniedException or similiar*/
于 2012-08-06T13:14:38.387 に答える
0

95% が上記の Korgen の回答に同意します。5% - 同じ機能を使用してユーザー プロファイルを編集する管理者アクセスを許可する場合は、UUID に切り替えて、編集されたユーザーを識別します。

于 2012-08-06T13:17:45.153 に答える