ASP.NET DropDownList中的XSS是否可能
本文关键字:是否 XSS 中的 NET DropDownList ASP | 更新日期: 2023-09-27 17:58:31
我的Markup中有这个:
<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>
在CS中我使用:
string value = ddlSalutation.SelectedValue;
// ... save value
黑客有可能从客户端更改DropDownList并将错误的选择值发送到服务器吗?SelectedValue可以具有与"Mr"或"Mrs"不同的值?
Xeddon,
根据这篇帖子:
黑客DropDownList值
实际上,只要页面的EnableEventValidation=true(这是默认值,尽管您可以在每页或web.config中禁用它),您就应该能够假设下拉列表选项没有在客户端更改。如果向下拉列表客户端添加了新值,并且发生了回发,则除非您为事件验证注册此新值,否则将发生错误(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
}
我希望这有帮助!
Lucas