2017-08-10 6 views
0

safeの場合は、javacriptファイルからコントローラのアクションを呼び出して、それに(敏感な)パラメータを渡すことができますか?パラメータを使用してJavaScriptからコントローラアクションを呼び出すことは安全ですか?

エンドユーザーが何かに賭けをした後、賭け金の値がコントローラのアクションに送信されるとします。

ベット自体はページ上のテキストボックスに入力され、JavaScriptはその値をパラメータとしてボタンのクリックイベントに送信します。

アクションが呼び出される前に、ユーザーはボタンをクリックした後に賭け金額を操作できますか?

おかげ

+0

操作できますか?はい –

+0

彼は最初にテキストボックスに異なる値を入力するだけです。違いはどこですか? – marsze

答えて

1

これは操作できますが、送信しない限り問題はありません。処理されるコントローラへの価格。

これについて考える:誰かがピザを注文し、ピザの価格がJavaScriptからコントローラに送信されます。これは価格が0に設定され、お金を得ることができない良い方法ではありません。この場合、IDまたはピザの名前をコントローラに渡して、データベースから価格を取得します。彼はその後、タイプ10とは場合は20

の数を取得しますどちらの場合も20にか、彼に直接タイプ20場合は、それを操作する場合

あなたのケースでは、違いはありません、問題の原因ではありません安全でなければならないコントローラ内のすべてのデータを処理しています。コントローラーにデータを渡すと、ユーザーが入力した値でない場合に問題がないかどうかを確認します。

+0

その説明と例をありがとうございます。とった ;-) – Kristian

0

それに(敏感言う)のパラメータのJavaScriptファイルからコントローラのアクションを呼び出すと、渡すために安全である場合、私は思っていました。

「保存」は...の意味ですか?接続がSSLの場合、値がクライアントからサーバーに安全に転送されると確信できます。しかし、安定性の点で "安全"はアプリケーションによって異なります。

コントローラに送信する前にパラメータを操作することはできますか?

確かに。しかし、どのようにパラメータが「敏感」ですか?クライアント/ユーザーがそれを知ることなく、クライアントからサーバーに送ることはできません。

+0

私の質問を編集しました。しかし、答えをありがとう – Kristian

1

今日の現代のWebサイトのほとんどは、今日はJavaScriptで大きく駆動されています。 javascriptファイル。しかし、特定のセキュリティ対策が施されていることを確認する必要があります。

  1. HTTP over SSL。 (敏感な日付を暗号化するには&中間者攻撃を防ぐ)
  2. 偽装防止トークン(クロスサイト要求偽造を防止する)
  3. クライアントの入力を常に検証します。操作を実行する前に、サーバー側での検証(データアノテーションなど)があり、モデル状態が有効(ModelState.IsValid)であることを確認してください。
  4. 私はaspを知っています。net mvcにはクロスサイトスクリプティング攻撃に対する防御機能がある程度備わっていますが、Webページに戻して表示されている場合は、クライアント入力が常にHTMLエンコードされていることを確認してください。
関連する問題