2016-07-23 8 views
1

私は私のマークアップでこれを持っている:CSでASP.NET DropDownListのXSSは可能ですか?

<asp:DropDownList ID="ddlSalutation" runat="server"> 
    <asp:ListItem Text="Please chose" Value="" /> 
    <asp:ListItem Text="Mr" Value="Mr"></asp:ListItem> 
    <asp:ListItem Text="Mrs" Value="Mrs"></asp:ListItem> 
</asp:DropDownList> 

は、私が使用します。

string value = ddlSalutation.SelectedValue; 
// ... save value 

が、それはハッカーがクライアント側からDropDownListコントロールを変更し、サーバーに間違った選択された値を送信できることは可能ですか? SelectedValueは "Mr"または "Mrs"と異なる値を持つことができますか?この記事によると

答えて

0

Xeddon、

Hacking DropDownList value

実際にドロップダウンリストのオプションは、限りページを持っているとして、クライアント側に変更されていないことを前提とすることができるはずですEnableEventValidation = true(ページごとまたはweb.configで無効にすることはできますが、デフォルトです)。新しい値は、あなたのDropDownListクライアント側に追加され、ポストバックはあなたがあなたは間違いなく問題ないはずのイベントの検証(http://odetocode.com/blogs/scott/archive/2006/03/21/asp-net-event-validation-and-invalid-callback-or-postback-argument-again.aspx

ため、この新しい値を登録しない限り、エラーが発生しますが発生した場合。あなたはEnableEventValidationを無効にする必要があり、あなたは(MVCにあるであろうと書かれた)次のように手動で検証することができるはずです。

public ActionResult PageOfGlory(){ 
    string value = Request.Form["dllSalutation"]; 
    string[] validSalutations = new string[]{ 
     "Mr", 
     "Ms" 
    }; 
    if(!validSalutations.Contains(value)){ 
     ModelState.AddModelError("","Invalid Salutation"); 
     return View(); 
    } 
    //Add stuff to database 

} 

私はこれが役に立てば幸い!

ルーカス

関連する問題