1

これは本当にショーストッパーです、私はイベント検証について考えていました、そしてこれは本当に必要です。ドロップダウンリストがWebサービスデータに基づいてロードされるWebサービス-JavaScript指向のページを構築するためのイベント検証を回避する方法を検討しています。ページのイベント検証を無効にすることもできますが、GoogleやYahooなどの大物がそのような検証をどのように実行するかについていくつかの洞察(主に彼らがそれを行うと思う方法)が欲しいです。これらの組織は非常にパブリックベースであり、ほとんどすべてのサービスにWebサービスを使用しており、物事を単純化するためにajaxに大きく依存しています。

イベントの検証が無効になっている場合、投稿値をどのように検証する必要がありますか。

4

1 に答える 1

2

イベント検証は、ページでトリガーされたすべてのイベントが、ロードされたときのページの状態から可能であることを確認します。たとえば、ボタンがClickイベントを発生させると、ハッシュアルゴリズムを使用して、ボタンが元のページのHTML出力に存在することを確認します。

イベント検証は、コントロールのUniqueIDプロパティのハッシュと、そのコントロールの各有効な値のハッシュを組み合わせることによって機能します。

これらのハッシュは、と呼ばれるページの非表示フィールドに格納されます__EVENTVALIDATION

これはASP.NETWebフォームによって提供されるフェイルセーフメカニズムであり、ステートレスな方法でアプリケーションを適切にコーディングする場合は、必要ありません。たとえば、アプリケーションで特定のユーザーのみが記事を削除できる場合は、削除ボタンイベントハンドラーを使用して、ユーザーが記事を起動したときに記事を削除する権限をまだ持っていることを確認することをお勧めします。Button Clickイベントがトリガーされたという事実に依存して、ユーザーに権限があると想定しないでください。

このプリンシパルをアプリケーションへのすべての入力に適用します。ドロップダウンリスト、ラジオボタン、チェックボックスなどから渡された値を手動でチェックすると、現在のページと状態のユーザーセッションで有効になり、ユーザー入力の検証にASP.NETイベントアーキテクチャに依存しません。これが確実な場合は、イベント検証を安全にオフにすることができます。

于 2012-02-28T17:26:17.850 に答える