asp.net – 为什么Glimpse会禁用请求验证?
我发现请求验证无法在我的PC上运行,这意味着它的行为与我们的实时Web服务器不同.经过一些实验,看起来Glimpse就是原因(Glimpse的版本还没有上线,这就是现场服务器工作正常的原因).
例如这个恶意网址: http://website/?foo=<script> …应该导致以下错误:
但是,一旦Glimpse在web.config“modules”部分注册,就不会发生请求验证(即使Glimpse已关闭),也会使网站对跨站点脚本攻击(XSS)开放. 如果我删除了注册Glimpse的行,那么请求验证会立即正常工作:在IIS 7.5中,如下所示: <system.webServer> <modules> <add name="Glimpse" type="Glimpse.AspNet.HttpModule,Glimpse.AspNet" preCondition="integratedMode" /> </modules> 有没有办法解决这个问题,或者这是Glimpse中的一个错误? 更新1: 我现在已经验证了如果我将Glimpse全新安装到一个不相关的项目(运行ASP.NET 4.5.1)中,问题就会发生,因此它与原始项目不兼容.我没有更改任何设置,我只是从NuGet安装它,问题立即显现. 我也注意到我通过设置< glimpse defaultRuntimePolicy =“Off”/>来瞥见了.在Web.config中,然后请求验证也正常启动. 解决方法
请求验证在ASP.NET中的工作方式是验证输入,并且仅在第一次调用Request.RawUrl,Request.QueryString等时抛出异常. Glimpse在请求的早期查找查询字符串(来自RequestMetadata.get_RequestIsAjax)并吞下该异常,因此将不会验证在同一请求上下文中对Request.QueryString的未来调用.
FWIW,ASP.NET团队已拒绝请求验证.有关更多信息,请参见http://www.asp.net/aspnet/overview/web-development-best-practices/what-not-to-do-in-aspnet,-and-what-to-do-instead#validation. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 单元测试MVC控制器
- asp.net – 替代SSRS前端
- asp.net-mvc-4 – MVC 4.0 WebApi应用程序和混合身份验证
- asp.net-mvc – 在FSharp.Core旁边找不到FSharp.Core.sigda
- ValidateInput属性似乎无法在ASP.NET MVC中工作
- ASP.NET的临时文件下载链接
- 在 Asp.Net Core 中安装 MVC
- asp.net-mvc – Web API – 默认呈现Razor视图?
- asp.net-mvc-routing – ASP.NET Core 1.0中的属性路由
- 在大型asp.net C#Web应用程序中修复SQL注入表单
- asp.net-mvc-4 – 附加到HTTP响应的CORS标头未发
- asp.net-web-api – 使用ASP.NET MVC 6 WebAPI从
- ASP.NET – 如何检查浏览器支持html5?
- asp.net – Visual WebGui
- 破解SQL Prompt 3.9的几步操作
- asp.net-mvc – 忽略viewstart在asp.net mvc raz
- asp-classic – 毫无头绪..溢出,Microsoft VBScr
- 【 .Net码农】认识ASP.NET MVC的5种Authorizatio
- asp.net-mvc-3 – MVC 3模型的复杂验证
- asp.net-mvc – 在Mono 2.4上使用Microsoft Data