【发布时间】:2015-10-26 21:18:52
【问题描述】:
这是在 ASP.NET Web 表单中,我在屏幕上有一个保存按钮。当我最初加载页面时,在某些情况下,不会呈现保存按钮。
button1.visible = false
在我的按钮点击事件中,我有这个
public void button1_click(Object sender, EventArgs e)
{
SaveData();
}
防止用户被保存的唯一安全措施是是否呈现保存按钮。
在 MVC 中,只需使用我自己修改的请求向服务器发出 HTTP POST 即可访问保存按钮操作方法。
在 ASP.NET Web 表单中,我有点困惑,因为它依赖于回发的加密 ViewState。我还需要将此安全性添加到 button1_click 事件吗?如果是这样,那么您能告诉我客户端如何在按钮不可见的情况下向服务器发起回发以达到按钮单击事件吗?
【问题讨论】:
-
绝对是一个有趣的问题。尽管无论任何答案,我都可能会选择“假设请求可以被欺骗并始终检查授权”。安全性应该总是在处理请求时发生,而不是在向用户提供请求选项时发生。后者只是用户体验,而不是安全性。
-
@david - 是的。我更感兴趣的是如何潜在地利用它
-
这是“微不足道的”,正如你在 MVC 中所说的,只有当你未能实现基本的安全功能时,ASP.NET Web 窗体也是如此。它绝对可能被利用(除非你依赖很多“如果和但是”。)
标签: c# asp.net webforms viewstate