gpt4 book ai didi

c# - 如何防止 ASP.NET 事件的 HTTP GET?或如何检查所有事件的 Request.Type?

转载 作者:行者123 更新时间:2023-11-30 20:13:58 31 4
gpt4 key购买 nike

在fiddler的帮助下,我用下面的HTTP GET请求做了这个“重放攻击”

http://svr/Default.aspx ?__EVENTTARGET=LinkBut​​ton1&__EVENTARGUMENT=&__VIEWSTATE=%2snipg%3D%3D&__EVENTVALIDATION=%2snip

令我惊讶的是,只要有有效的 View 状态和事件验证,它就可以工作。以下停止 GET 我的点击事件,但是......

protected void BtnUploadClick(object sender, EventArgs e)
{
if(Request.RequestType == "GET") throw new HttpException(405, "GET not allowed for this.");
}

我的代码中有所有的事件。有没有办法将这种行为全局添加到通常是回发事件的事件中?

最佳答案

可以。附加到应用程序的 PreRequestHandlerExecute事件。作为单独的 HttpModule 或在 Global.asax 中执行。

在事件 hadler 中,您可以检查:

  1. _EVENTTARGET_ , _VIEWSTATE_ 不是 Request.QueryString 属性的一部分(在每个请求上)
  2. 在 GET 上,您可以检查 Request.Form 是否为空。因为 asp.net 仅在 POST 操作上发布表单。

关于c# - 如何防止 ASP.NET 事件的 HTTP GET?或如何检查所有事件的 Request.Type?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1111700/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com