gpt4 book ai didi

asp.net-mvc-3 - OutputCache 过滤器引起的潜在危险请求

转载 作者:行者123 更新时间:2023-12-02 05:19:27 25 4
gpt4 key购买 nike

我在 MVC3 应用程序中发现了奇怪的行为。我有一个由 Ajax 调用的 Action,并接收带有 HTML 文本的 Post。我想允许输入 HTML,因此我设置了 ValidateInput(false) 属性。我还有一个具有以下参数的全局 OutputCache 过滤器:(NoStore = true, Duration = 0, VaryByParam = "*")
代码如下所示:

[HttpPost]
[ValidateInput(false)]
[OutputCache(NoStore = true, Duration = 0, VaryByParam = "*" )]
public ActionResult Edit(SomeModel someModel)
{
saveModel(someModel);
return new AjaxEditSuccessResult();
}

当我向该方法发送帖子时,它会被执行并保存模型,但我得到的响应是标准的“从客户端检测到潜在危险的 Request.Form 值”错误消息,并带有以下堆栈跟踪:

[HttpRequestValidationException (0x80004005): A potentially dangerous Request.Form value was detected from the client (text="<p class="MsoNormal"...").]
System.Web.HttpRequest.ValidateString(String value, String collectionKey, RequestValidationSource requestCollection) +9665149
System.Web.<>c__DisplayClass5.<ValidateHttpValueCollection>b__3(String key, String value) +18
System.Web.HttpValueCollection.EnsureKeyValidated(String key) +9664565
System.Web.HttpValueCollection.Get(String name) +17
System.Web.Caching.OutputCacheModule.CreateOutputCachedItemKey(String path, HttpVerb verb, HttpContext context, CachedVary cachedVary) +676
System.Web.Caching.OutputCacheModule.CreateOutputCachedItemKey(HttpContext context, CachedVary cachedVary) +55
System.Web.Caching.OutputCacheModule.OnLeave(Object source, EventArgs eventArgs) +9716788
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +136
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +69

您知道我是否可以以任何方式向 OutputCache 属性表明它需要尊重 ValidateInput 属性吗?

最佳答案

流程中有两个地方调用验证:

  1. Controller 方法调用
  2. 渲染结果存储在缓存中时。

您已经解决了 ValidateInputAttribute(false) 的第一个问题,但看起来缓存模块忽略了 NoStore 指令,并且仍然尝试构建缓存键,然后再执行此操作它验证参数,以消除指定:Location = System.Web.UI.OutputCacheLocation.None,以便缓存模块甚至不会尝试执行任何操作。将您的 OutputCache[...] 替换为如下内容:

[OutputCache(NoStore = true, Location = System.Web.UI.OutputCacheLocation.None)]

关于asp.net-mvc-3 - OutputCache 过滤器引起的潜在危险请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14460768/

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