繁体   English   中英

如何从 iis7 中的 web 停止 web 站点目录外部文件访问

[英]how to stop web site directory outside file access from web in iis7

我有一个 windows 服务器 2008。我正在使用 IIS7 添加几个 web 站点。 但是所有 web 都可以访问外部文件。 例如:

@{ DirectoryInfo di=new DirectoryInfo("c:\\");}
@foreach (var item in di.GetFiles())
{
    <div>@item.FullName</div>
}

此代码成功枚举文件。 我需要配置无法访问 web 站点目录之外的内容。 仅使用内部文件和文件夹

怎么做?

您可以创建一个具有有限权限的新用户,并设置为在该用户下运行应用程序池。

更改 AppPool 的身份(即指定 App Pool 正在运行的凭据)

  1. 打开 IIS
  2. 连接树中的 Select 应用程序池
  3. Select 应用程序池
  4. 右键单击和 select 高级设置。
  5. 查找进程 Model/身份。 默认可能读取 ApplicationPoolIdentity
  6. 单击该值(例如 ApplicationPoolIdentity)
  7. 单击右侧显示的省略号
  8. Select 内置帐户或单击自定义帐户
  9. 如果选择自定义帐户,请单击设置并指定 Windows 帐户和密码
  10. 单击“确定”关闭“设置凭据”对话框
  11. 单击“确定”关闭“应用程序池标识”对话框
  12. 单击“确定”关闭“高级设置”对话框。
  13. 回收应用程序池。

您还可以在 web.config 文件中设置身份:

<system.web>
  <identity impersonate="true"
            userName="UserName"
            password="Password"/>
</system.web>

您显示的代码并不意味着外部个人可以访问您服务器上的文件,它所显示的只是您服务器上运行的程序可以访问服务器上有意义的文件。

如果您想阻止程序访问这些文件,请为那些不是运行您要阻止访问它们的程序的用户的用户添加安全权限。

如果您希望保护目录,请查看使用 .htaccess(非常基本的安全性)或考虑 Alex 的解决方案

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM