我今天正在部署一个网站,似乎我需要向系统帐户“网络服务”授予对网站目录的读/写权限。这是否意味着在此网络主机上运行的任何其他网站(可能也以网络服务的形式运行)也可以访问这些文件?
我尝试将权限分配给与我的域名匹配的预创建帐户。但这似乎不足以运行该网站。除非我还授予“网络服务”权限,否则我会收到拒绝访问的消息。
笔记事实证明这是一个错误,我不需要授予网络服务权限才能使我的网站正常运行。
笔记该网站托管公司在 Windows 上运行 IIS。
答案1
如果服务器上的 Web 应用程序在“中等信任”级别运行,则应该无法读取/写入应用程序根目录之外的文件,即使您注意到有文件权限也是如此。但是,如果没有这些权限,那么在网络服务环境下运行的任何应用程序都可以读取和写入 Web 目录中的文件。
然而,好的共享网络主机应默认设置这样的网站。请记住,即使不需要设置写入权限,如果共享服务器上的所有网络应用都具有超过“中等”信任级别,它们将能够读您的网站中的所有文件 - 包括您的 web.config、任何源代码文件、您的 App_Data 目录的所有内容等等。中等信任级别甚至可以阻止跨越 Web 应用程序边界的读取。
答案2
假设这是 IIS 上的 ASP.NET
为您的网站创建一个专用的 AppPool,然后将该 AppPool 设置为以您创建的预创建帐户的形式运行,这样就可以消除对需要读写的网络服务的依赖