0

ボタンを使用してポストバックを実行しています

 <asp:Button ID="SendButton" Enabled="True" Width="70" runat="server" PostBackUrl='<%# Eval("GroupName", "SendMessage.aspx?GroupName={0}") %>' Text='Send'></asp:Button>

GroupName を SendMessage.aspx ページに送信します。しかし、なりすましのような攻撃に対して脆弱であると感じています(間違っている場合は修正してください)。

http://localhost:40092/SurelyK/SendMessage.aspx?GroupName=Acc

URL には、攻撃者が変更できるグループ名が含まれています。このような攻撃から自分の Web サイトを防ぐにはどうすればよいですか。私にいくつかの提案をお願いします。

4

2 に答える 2

1

これを防ぐ通常の方法は、悪意のあるクライアントが何もできないサーバー側で入力を検証することです。サーバー上に無効なグループ名が表示された場合は、有効なグループ名に対して行う処理を実行するのではなく、そのことを示すページを返すことができます。

値が変更されることが予想されない場合は、データをViewState(暗号化されている) またはSession(サーバーに保存され、クライアントからはアクセスできない) に保存できます。

ただし、この情報を送信するためのボタンがあることを考えると、適切なサーバー側の検証が正しいパスだと思います。

同様に、認証と承認を要求してこのページを保護していない場合は、もちろん、あなたが知っていて信頼できるユーザーのみがページにアクセスできるようにする必要があります。

于 2011-08-30T22:48:56.220 に答える
0

Session代わりに変数を使用して関連データを保持するのはどうですか? セッション データは、セッションが終了するまで、複数のページにわたって保持されます。

セッション変数のテンパリングについて聞いたことがありません。

于 2011-08-30T22:50:02.840 に答える