gpt4 book ai didi

iis-7 - IIS 7.0 - IIS 将 "private"添加到缓存控制,它来自哪里

转载 作者:行者123 更新时间:2023-12-01 02:33:58 24 4
gpt4 key购买 nike

因为我们保护 .PDF 文件免受匿名用户的攻击,所以我们有一个自定义处理程序,所以我们有一个条目


我们还对 http header 进行了更改,以通过 IIS 7 管理添加“缓存控制:无缓存,无存储”,该管理在 system.webserver 元素下创建 web.config 条目,如下所示:

<httpProtocol>

<customHeaders>
<clear />
<add name="cache-control" value="no-cache,no-store" />
</customHeaders>

</httpProtocol>

当我在 burpsuite session 中查看响应 header 时,我看到了 .aspx 页面:cache-control: no-store,no-cache,no-store

但对于 PDF 页面:

缓存控制:私有(private),无缓存,无存储

我的目标是让一切都“无缓存,无存储”。我不确定我错过了什么。 web.config 中没有其他缓存设置。请告知如何从 PDF 页面中删除“private”以及从其他所有页面中删除额外的 no-store。其他通过 System.Web.StaticFileHandler 的静态页面,它们也有“no-store,no-cache,no-store”。

最佳答案

虽然这篇文章现在已经有几年了,但我想我会分享我的解决方案,这可能会节省一些人头疼的时间。

我有一个使用 IIS 的 MVC 4 站点设置,我的目标是让 IIS 使用 <customHeaders> 将 header 添加到某些文件(由位置定义)。部分。我在 <customHeaders> 中的“缓存控制”值部分被附加到“缓存控制:私有(private)”的末尾,由 IIS 神奇地添加。

这是因为 runAllManagedModulesForAllRequests 我的 web.config 中的设置被设置为 true

<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
</modules>
</system.webServer>

此设置导致其中一个 IIS 模块(我不知道是哪个模块)将“缓存控制” header 附加到从 IIS 请求的每个文件中。

因此解决方案是将其设置为 false,并使用 preCondition 单独管理每个模块每个属性。

runAllManagedModulesForAllRequests 早期版本的 MVC 需要设置,因为没有它,无扩展路由将无法工作。这已经被修复,更多细节在这里

http://blogs.msdn.com/b/tmarq/archive/2010/04/01/asp-net-4-0-enables-routing-of-extensionless-urls-without-impacting-static-requests.aspx

使用 的有用阅读runAllManagedModulesForAllRequests

http://weblog.west-wind.com/posts/2012/Oct/25/Caveats-with-the-runAllManagedModulesForAllRequests-in-IIS-78

关于iis-7 - IIS 7.0 - IIS 将 "private"添加到缓存控制,它来自哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11213637/

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