2011-07-06 8 views
1

これは明確化の質問です:私はMCTS 70から515のために勉強して、私のトレーニングキットには隠しフィールドと述べている:asp.net隠しフィールド - 変更中ですか?

を「ユーザーが隠しフィールドに格納されたデータを表示または変更することができ、」今、私はユーザーがページのソースを表示できるようになったら、非表示のフィールドデータが表示されます。しかし、私は変更部分について興味があります。ユーザーが隠しフィールドのデータをどのように変更し、サイトにどのような影響を与えますか?たとえView Source経由でデータを変更しても、ページを保存してからデータをサーバーに返送することはできません。

著者は私が知っていると想定しているものは何ですか?

OKすべての回答が同じことを言っていました(この時点で)。私は、もし著者が "savvy"と言っているのであれば、それは私に指摘されたかもしれないと思います。私はいつも、ユーザーがFirebugや、ページがユーザーに表示された後に操作を行うことができるツールについて知らないと思っていた。

ありがとうございました。それは有り難いです!

+1

入力フィールドの値を変更/設定できるブラウザプラグインがあります。変更はクライアントサイトで行われますが、次のポストバック時にはサーバーサイトで値が更新されます。 –

答えて

3

非表示フィールドは、他のフォーム要素と同様に、シリアル化されてサーバーに送信されるときにキー値ペアとして表されるキー値ペアです。隠しフィールドを変更するには、ブラウザでFireBugや他の「開発者コンソール」を使用する方法と、要求を手動で書き込んでサーバーに送信する方法があります。

+0

'隠されたフィールドは単にキーと値のペアです'いいえ、キーと値のペアとして使用されます* HTMLの 'input'または' hidden'要素とそれから生成されるaspコントロールですポストバックからのHTTPフォームの値。あなたはまた、JavaScriptである隠されたものが野生の中で変更される最も可能性のある方法を見逃しました。 – StuperUser

+0

@StuperUser正しいですか?隠しフィールドはキーと値のペアではありません。投稿を少し編集しました。 –

1

簡単に、FireBugのようなプログラムを開き、要素の値を変更します。マークアップはクライアント側であることを忘れないでください。そのため、サーバーは正しいデータを返信するようにクライアントを信頼していますが、これは簡単に回避できます。

アプリケーションのセキュリティに不可欠なデータをセッションに保存するのが最善ですが、データはサーバー側に残り、クライアントに関連付けられています。 ASP.NETは、フィールドの不正な変更を防ぐためにハッシュを構成することができます。

2

知られているようにポストバック中、またはJavaScriptを使用しているクライアントで、サーバー上の非表示フィールドの値を変更することは可能です。 jQueryのを使用して

例:ページがブラウザによってロードされた後http://jsfiddle.net/JGsQ5/

、それはJavaScriptが操作するものであるとされたHTTPリクエストを構築するためにブラウザで使用されるDOM(http://en.wikipedia.org/wiki/Document_Object_Model)に保存されていますポストバックとしてサーバーに返されます。

2

Firebugなどのデバッグツールを使用することに加えて、ユーザーは、JavaScriptを使用して変更を加えた間接的な方法で非表示フィールドの値を間接的に変更できます。通常、ユーザーは自分が行っていることの技術的な詳細を知らないでしょう(隠されたフィールドが変更されたという事実を気にかけずに気にしません)

フィドラーなどの他のツールは、ポストバック時にサーバーに転送されている隠しフィールド(または任意のフィールド)の値を変更します。

関連する問題