可以通过恶意用户提交asp:Visible = False的按钮吗?

时间:2013-05-28 16:20:52

标签: asp.net security button

这样的按钮不会呈现给浏览器,恶意用户是否能够触发隐形按钮定义的操作?例如通过JavaScript调用WebForm_DoPostBackWithOptions? ASP.NET会接受看似由此按钮触发的POST,即使它没有呈现吗?

3 个答案:

答案 0 :(得分:2)

简短回答

始终由您(开发人员)确保从用户输入(在这种情况下是帖子)收到的数据有效。虽然说asp.net框架会为你做很多验证,比如“可疑的查看帖子值”。

即使您显示的页面没有提交按钮,也可以为Web端点构建帖子。

修改

这是security through obscurity的一个例子,通常不是最佳做法。 Asp.Net“提交”按钮修改名为__EVENTTARGET的隐藏表单字段。当确定按钮单击“事件”时,asp.net处理程序将检查此字段。如果攻击者知道事件目标的名称,则可以欺骗此值。

隐藏/显示UI元素有助于改善用户体验,但在执行任何业务操作之前,您应始终(在服务器上)验证用户输入。

答案 1 :(得分:0)

我不相信它会,如果它没有呈现它不应该接受回发。 .net使用页面上的隐藏字段来了解页面上的哪些控件,并且可以在回发期间验证它,因此它知道触发回发的内容。如果控制不是从那里开始它不应该接受它。

答案 2 :(得分:0)

是的,这绝对是可能的。 ASP.NET接受页面上定义的控件的所有POST值,可见或不可见。还要注意设置为"只读"的文本字段。在帖子之后不要使用readonlyControl.Text,并且相信它具有与上次设置时相同的值。

看看使用ASP.NET执行提交时发布的内容,例如Chrome开发人员工具,Fiddler等,您应该能够弄清楚如何将自己的值添加到"隐形& #34;文本字段。