问题描述
当部署文件到Azure App Service上后,默认访问文件在wwwroot目录中,如appsettings.json文件,在通过URL+文件名的形式可以访问,这样敏感信息会被泄露出去,为避免如此情况,如何来限制访问JSON类型的文件呢?
解决办法
可以通过在Web.config中配置禁止访问某些文件或者某些类型的文件,参考如下:
<system.webServer> <security> <requestFiltering allowDoubleEscaping="true"> <!--<fileExtensions> <add fileExtension=".json" allowed="false"/> </fileExtensions>--> <hiddenSegments> <add segment="appsettings.json"/> </hiddenSegments> </requestFiltering> </security> </system.webServer>
这样访问appsettings.json时会报404,但是由于浏览器编码的原因可能会显示的不友好,也可以指向自定义的404页面,参考如下:
<system.webServer> <httpErrors errorMode="DetailedLocalOnly" defaultResponseMode="File" > <remove statusCode="404" subStatusCode="-1" /> <error statusCode="404" path="/404.html" responseMode="ExecuteURL"/> </httpErrors> </system.webServer>