对不起标题,不知道最简单的方法。
我正在使用带有webforms的ASP.NET vb.net。我在页面上有一个下拉列表控件。 目前,当所选下拉列表发生更改时,它会在按钮单击时回发,并使用所选值
执行某些操作我想知道是否有可能(由黑客等),操纵下拉列表的值或在Web请求中发送更改后的值,以便它们可以在下拉列表中定义选项服务器端。
e.g
Private Sub testbutton_Click(sender As Object, e As EventArgs) Handles testbutton.Click
Dim test As String = testdropDown.SelectedItem.Value
testlabel.text = test
End Sub
如果所选值在用户定义的值之外更改,则标签可以填充诸如xss之类的内容。
或者,如果我将该值放入SQL查询中,并且只想要1-10的选项,他们是否可以更改下拉值以输入25并让它成功传入查询?
答案 0 :(得分:0)
是的,但是ASP.NET可以使用构建机制来避免它http://msdn.microsoft.com/en-us/library/hh882339(v=vs.110).aspx。即使在客户端更改了值并且它与viewstate不匹配,它也会引发异常。如果您不更改任何默认设置,我认为您是安全的。使用客户端逻辑无法更改下拉列表的值,因为EnableViewStateMac属性,它将在.net中抛出损坏的视图状态的异常。
int val;
if(int.TryParse(Request.QueryString["val"]),val){
//now check the range or custom business logic
if(val > A1 || val < A2)
throw new Applicationexception("Out of range");
//process here
}else{
throw new Applicationexception("Some issue");
}