appsettings.json 是否受 IIS 保护?
Is appsettings.json protected by IIS?
在遗留 ASP.NET 应用程序中,*.config
文件 无法通过导航到 URL 下载 。但新的约定是使用 appsettings.json
。现在,如果我有一个名为 contoso.com
的 ASP.NET 核心网站,它由 IIS 从名为 C:\inetpub\websites\contoso.com
的目录提供服务,并且有一个文件位于 C:\inetpub\websites\contoso.com\appsettings.json
...如果有人导航到 https://contoso.com/appsettings.json?
,IIS 足够聪明,知道不要通过 HTTP 提供此文件
文件通常从 "wwwroot" 文件夹提供。只要您没有将 C:\inetpub\websites\contoso.com\
配置为应用程序的网络根目录,appsettings.json 文件就是安全的。默认情况下,静态文件位于 C:\inetpub\websites\contoso.com\wwwroot\
中。我推荐这个优秀的文档:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/static-files
顺便说一下,除非另外配置,IIS 甚至不检查文件系统。实际上 ASP.NET Core 将确保仅从 "wwwroot" 文件夹提供文件。 IIS 中典型的 ASP.NET Core 网站实际上是 运行 作为 IIS 通过 ASP.NET 核心模块反向代理的独立 Web 服务器。这意味着 所有 请求都由 ASP.NET 核心处理。要提供静态文件,您必须使用静态文件中间件,它在 Microsoft.AspNetCore.StaticFiles 包中可用。
在遗留 ASP.NET 应用程序中,*.config
文件 无法通过导航到 URL 下载 。但新的约定是使用 appsettings.json
。现在,如果我有一个名为 contoso.com
的 ASP.NET 核心网站,它由 IIS 从名为 C:\inetpub\websites\contoso.com
的目录提供服务,并且有一个文件位于 C:\inetpub\websites\contoso.com\appsettings.json
...如果有人导航到 https://contoso.com/appsettings.json?
文件通常从 "wwwroot" 文件夹提供。只要您没有将 C:\inetpub\websites\contoso.com\
配置为应用程序的网络根目录,appsettings.json 文件就是安全的。默认情况下,静态文件位于 C:\inetpub\websites\contoso.com\wwwroot\
中。我推荐这个优秀的文档:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/static-files
顺便说一下,除非另外配置,IIS 甚至不检查文件系统。实际上 ASP.NET Core 将确保仅从 "wwwroot" 文件夹提供文件。 IIS 中典型的 ASP.NET Core 网站实际上是 运行 作为 IIS 通过 ASP.NET 核心模块反向代理的独立 Web 服务器。这意味着 所有 请求都由 ASP.NET 核心处理。要提供静态文件,您必须使用静态文件中间件,它在 Microsoft.AspNetCore.StaticFiles 包中可用。