使用 API 密钥放置 JSON 文件以进行私人访问的位置

Where to put JSON file with API key for Private Access

我有一个 Web 应用程序 (asmx),它使用存储在 JSON file.Currently 中的 API 秘密 我已将文件放在 wwwroot/myapp/ 文件夹中

        string htmlFilePath = HttpContext.Current.Server.MapPath("~/");
        string contents = File.ReadAllText(htmlFilePath+@"\file.json");
        return contents;

此文件可从 browser.How 中公开访问 可以使此文件只能由应用程序访问吗?

在 IIS 配置中,您可以使用过滤来拒绝访问您服务器上的资源。如果我是对的,<denyUrlSequences> 配置元素可能是合适的

The <denyUrlSequences> element contains a collection of elements that specify sequences of URL characters that IIS will deny, which helps prevent URL-based attacks on the Web server.

在您的 IIS 配置中,使用以下内容过滤您的 privatekey.json

<system.webServer>
   <security>
      <requestFiltering>
         <denyUrlSequences>
            <add sequence="privatekey.json" />
         </denyUrlSequences>
      </requestFiltering>
   </security>
</system.webServer>

否则,您可以将文件存储在 IIS 的根目录之外,例如C:\.private\privatekey.json 并从那里加载文件。

在您的 Web 项目中创建一个名为 App_Data 的新文件夹,并将您的私人文件放在那里。默认情况下,ASP 将禁止 App_Data 文件夹中的文件 public 访问。