4

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

4

3 回答 3

2

简短的回答的。

始终由您(开发人员)确保从用户输入(在本例中为帖子)接收到的数据是有效的。话虽如此,asp.net 框架会为你做很多验证,比如“可疑的帖子值”。

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

编辑

这将是通过默默无闻的安全示例,通常不是最佳实践。Asp.Net 的“提交”按钮修改了一个隐藏的表单域,称为__EVENTTARGET. 当确定按钮单击“事件”时,asp.net 处理程序将检查此字段。如果攻击者知道事件目标的名称,则可以欺骗此值。

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

于 2013-05-28T16:29:35.137 回答
0

是的,这绝对是可能的。ASP.NET 接受页面上定义的控件的所有 POST 值,无论是否可见。也要小心设置为“只读”的文本字段。不要readonlyControl.Text在发布后使​​用,并相信它与您上次设置时的值相同。

看看当您使用 ASP.NET 执行提交时发布的内容,例如 Chrome 开发人员工具、Fiddler 等,您应该能够弄清楚如何将您自己的值添加到“不可见”文本字段中。

于 2013-05-28T17:20:55.490 回答
0

我不相信它会,如果它没有被渲染它不应该接受回发。.net 使用页面上的隐藏字段来了解页面上有哪些控件,并且可以在回发期间验证这一点,因此它知道是什么触发了回发。如果控件一开始就不存在,它不应该接受它。

于 2013-05-28T17:02:50.023 回答