3

私はここで行った別の投稿の回答に混乱しました: https ://sharepoint.stackexchange.com/questions/40057/is-an-updatepanel-a-bad-decision/40412#40412

私の理解では、Button_Clickを処理するUpdatePanelは、セキュリティの観点から通常のポストバックと何ら変わりはありません。UpdatePanelはまだ完全なポストバックを実行しており、UpdatePanelの範囲内で非同期的に発生しています。

このシナリオを考えてみましょう。

賛成クリックイベントを処理しています。AJAXを使用するか、UpdatePanelのButton_Clickを使用して、新しい投票を送信できます。(当然のことながら、投票は非同期である必要があります。投票ごとにポストバックを設定することは、ひどいIMOになります)

投票の不正行為を避けるために、私はアイテムとユーザーの両方に投票を結び付けているので、投票を送信する際には、これら2つのことを含める必要があります。

AJAXを使用すると、これらのフィールドの両方が簡単にハッキングされる可能性があり、誰かがユーザー名の配列を取得して、短時間で数百の投票を送信するループを実行できるようになります。

UpdatePanelを使用すると、少なくとも現在のユーザーサーバー側のIDを取得でき、アイテム作成メソッドをWebサービスに公開することはできません。

これは根本的に安全ではありませんか?UpdatePanelがどのように機能するか誤解していませんか?

4

1 に答える 1

2

確かに、セキュリティのUpdatePanel観点からはポストバックと同じです。出力が部分的にどのようにレンダリングされるかだけの問題です。

さて、あなたのシナリオに関して:

純粋にajaxアプローチを実行しても、セキュリティが危険にさらされることはありません。javascriptであるからといって、リクエストのパラメータとして実際にユーザーを受け取ることによって、不正行為にさらされることを余儀なくされるわけではありません。それはあなたが認証、クッキーなどを持っているものです。プリンシパルとIDを使用して、着信するリクエストからユーザーを識別するため。

簡単に言うと、UpdatePanelとAJAXの両方で安全な実装を行うことができます。

:AJAXは、セキュリティ実装の外部にWebサービスを公開することを強制しません。サーバー上のエンドポイントは、実際にはMVCなどControllerである可能性があります。HttpHandler

于 2012-07-31T23:46:33.373 に答える