7

私はNerdDinnerを使用していますが、次のセクションについて少し混乱しています...

まず、彼らは新しいディナーを作成するためのフォームを追加しました。

<%= Html.TextArea("Description") %>

次に、フォーム入力をモデルにバインドする 2 つの方法を示します。

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create() {
    Dinner dinner = new Dinner();
    UpdateModel(dinner);
    ...
}

また:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(Dinner dinner) { ... }

わかりました。これまでのところ、すべてが本当に簡単に見えます。

それから少し後に彼らは言います:

ユーザー入力を受け入れるときは、常にセキュリティについて偏執的であることが重要です。これは、オブジェクトをフォーム入力にバインドする場合にも当てはまります。HTML および JavaScript インジェクション攻撃を回避するために、ユーザーが入力した値を常に HTML エンコードするように注意する必要があります。

は?MVC がデータ バインディングを管理しています。HTMLエンコーディングはどこで/どのように行うべきですか?

4

1 に答える 1

3

通常(常にではありませんが)、値を書き出す前に、通常はビューで、場合によってはコントローラーからもHTMLエンコードする必要があります。

ここにいくつかの情報:http ://weblogs.asp.net/scottgu/archive/2010/04/06/new-lt-gt-syntax-for-html-encoding-output-in-asp-net-4-and- asp-net-mvc-2.aspx

于 2010-05-25T17:10:46.113 に答える