问题描述
当部署文件到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>
当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!