gpt4 book ai didi

asp.net - 如何理解 google chrome 中针对 Asp.net 提供的静态资源的安全警告

转载 作者:行者123 更新时间:2023-12-02 08:50:44 26 4
gpt4 key购买 nike

我使用 Google Chrome 开发者工具中的审核功能检查了我们的 Web 应用程序。

首先,我收到一条警告,表明我们正在提供不可缓存的静态内容:“以下资源明确不可缓存。如果可能,请考虑使其可缓存”。

为了解决这个问题,我将此代码段添加到我们的网络配置中

<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00" />
</staticContent>

按照这篇博文中的建议: http://blogs.msdn.com/b/carlosag/archive/2009/06/09/are-you-caching-your-images-and-scripts-iis-seo-can-tell-you.aspx

如果我现在在 google chrome 中开始新的审核,我会收到新警告:

The following publicly cacheable resources contain a Set-Cookie header. This security vulnerability can cause cookies to be shared by multiple users.

您能解释一下 Asp.net 中潜在的安全威胁以及可能的解决方案吗?

[更新]

经过更多研究,我想这可能与这个问题有关:

Why is ASP.NET forms authentication setting cookies on a static image request?

但我无法将拼图拼在一起。情况并不完全相同,虽然我们的应用程序可以配置为使用表单例份验证,但我在使用 Windows 身份验证时收到了警告。

最佳答案

看来问题确实与表单例份验证有关。对用户进行身份验证后,我们设置一个表单例份验证 cookie。该 coockie 没有设置路径,因此每次请求都会发送它,即使是静态图像。

看起来我仍然拥有之前调试 session 中设置的 coockie,即使我正在测试 Windows 身份验证。

我认为最好的解决方案是为 coockie 设置一条路径,以防止它被发送以获取静态资源。不幸的是,我无法为所有服务请求定义路径,因为我们正在使用 WCF Ria 服务,并且服务具有创建运行时的虚拟路径。

目前的解决方案是仅在浏览器中设置coockie。 Web 配置中更新的条目是:

<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00" cacheControlCustom="private"/>
</staticContent>

重要的部分是新的cacheControlCustom属性。

我想,如果浏览器由多个用户共享(例如在网吧?),这仍然可能是一个安全问题,但这对于我们的项目来说不是一个有效的场景。

关于asp.net - 如何理解 google chrome 中针对 Asp.net 提供的静态资源的安全警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11294938/

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