Куда поместить файл JSON с ключом API для частного доступа

У меня есть веб-приложение (asmx), которое использует секрет API, хранящийся в файле JSON. В настоящее время я поместил файл в папку wwwroot / myapp /

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

Этот файл общедоступен из браузера. Как сделать этот файл доступным только для приложения?

Всего 2 ответа


Создайте новую папку с именем App_Data в своем веб-проекте и поместите туда свои личные файлы. По умолчанию ASP запрещает файлы в папке App_Data для публичного доступа.


В конфигурации IIS вы можете использовать фильтрацию, чтобы запретить доступ к ресурсам на вашем сервере. Если я прав, элемент конфигурации <denyUrlSequences> может подойти

Элемент <denyUrlSequences> содержит коллекцию элементов, которые задают последовательности символов URL, которые IIS будет запрещать, что помогает предотвратить атаки на веб-сервер на основе URL.

В вашей конфигурации IIS используйте следующее для фильтрации вашего privatekey.json

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

В противном случае вы можете сохранить файл вне корня IIS, например, C:.privateprivatekey.json и загрузить его оттуда.