13

在我的网站中,已登录的用户可以更改他们的个人资料图片,此过程包括将上传的图片保存到网站根目录中的文件夹中。

当我测试它时,我收到一个错误,我应该使用权限授予对这个特定文件夹的访问权限。

我无法控制控制面板,他说他确实授予了Images文件夹对Others的READWRITE权限。

再次测试后,再次出现同样的错误,所以我编辑了web.config并包括:

<identity impersonate="true"/>

现在一切似乎都很完美。但是,我刚刚在这里做了什么?有安全隐患吗?我是否允许所有人匿名访问我的网站?

4

2 回答 2

12

但是,我刚刚在这里做了什么?

您现在以客户用户的身份运行您的网站。

有安全隐患吗?

这将取决于此帐户在服务器上的权限。通常,使用具有大量权限的帐户运行网站是一种不好的做法。理想情况下,您应该将您的网站配置为在您明确授予所需文件夹权限的帐户下运行。

您的方法的问题是,如果另一个无权访问指定文件夹的用户访问您的网站,则它对他不起作用。另一方面,如果这是预期的行为,那么您可能可以通过冒充用户身份来解决问题。

我是否允许所有人匿名访问我的网站?

不,这与身份验证无关。

于 2013-07-29T12:25:54.913 回答
3

您所做的是授予用户在登录用户下工作的权限。

并且使模拟真实存在安全风险。

如果您正在生产,我建议您阅读这篇文章 http://support.microsoft.com/default.aspx?scid=kb;en-us;329290

“在 web.config 中使用模拟允许您覆盖为应用程序运行的应用程序池配置的任何身份 - 它只是控制身份的更细粒度的方法(在应用程序级别与应用程序池级别),因此您可能有两个应用程序在同一个 AppPool 上运行,但其中一个使用模拟来使用另一个身份。” 礼貌:应用程序池身份与模拟身份?

于 2013-07-29T12:29:05.393 回答