标签: impersonation

我应该通过 FastCGI 模拟 PHP 吗?

我正在通过 FastCGI 将最新版本的 PHP 安装到 IIS 7.5 上,所有说明都说 FastCGI 应该通过设置来模拟调用客户端

 fastcgi.impersonate = 1
Run Code Online (Sandbox Code Playgroud)

如果我的网站会有这个配置

  • 专用应用程序池
  • ApplicationPoolIdentity 的应用程序池标识
  • 仅匿名身份验证(如 IUSR)

我为什么要冒充?

我来自 ASP.NET 背景,其中 IUSR 获得只读权限,应用程序池标识获得任何写入权限。授予对 IUSR 的写访问权限通常为 WebDAV 漏洞打开大门。所以我犹豫要不要让 PHP 作为 IUSR 运行。

我找不到很多人问这个问题 ( 1 | 2 ) 所以我想我一定遗漏了一些东西。有人可以为我澄清这一点吗?

php fastcgi iis-7.5 impersonation iusr

17
推荐指数
1
解决办法
1万
查看次数

从 Windows 中的提升提示中以其他用户身份运行,无需密码

有几个实用程序可以以不同的用户身份运行(例如:runascpaupsexec),但所有这些实用程序都需要相应用户的密码,即使您已经以提升的权限运行。

我想实现以下目标:

  1. 我已经有一个提升的提示 ( Administrator)
  2. 我想执行一个命令(例如:)calc.exejohn而不需要将他们的密码输入/传递给启动器实用程序。

例如,在 Unix 系统中,您可以:

root@server:~# su - john
Run Code Online (Sandbox Code Playgroud)

windows windows-7 runas impersonation

14
推荐指数
2
解决办法
4万
查看次数

允许模拟帐户需要哪种 AD 权限?

我有一个 Windows 服务帐户。我需要授予它在另一个受信任域上的组内模拟另一个帐户的权限,而无需委托。如此有效,我的服务帐户现在会说“哦,我是 Barnie@otherdomain.com”。我知道这是可能的,因为它是为另一个域设置的 - 但在我加入之前,我不知道他们是怎么做到的!

我是一名开发人员,但我所在的目录管理员似乎不知道该怎么做。任何帮助将不胜感激!

active-directory impersonation

13
推荐指数
1
解决办法
3万
查看次数

设置 validateIntegratedModeConfiguration=false 以继续使用身份 impersonate=true 是否安全?

我们已将 ASP.NET Web 应用程序从 IIS6 升级到 IIS7 集成模式。我们的应用程序使用:

<identity impersonate="true"/>
Run Code Online (Sandbox Code Playgroud)

因此我们必须设置:

<validation validateIntegratedModeConfiguration="false" />
Run Code Online (Sandbox Code Playgroud)

这是明智的吗?我的直觉说不是,但是在谷歌上搜索这个问题,在访问的每个页面上都建议使用这种“解决方法”。

在 IIS7 集成中,模拟不再是一个好的做法,我们是否应该放弃它并提出不同的解决方案?

iis iis-7 asp.net impersonation

9
推荐指数
1
解决办法
3105
查看次数

访问受保护网络资源的 IIS 策略

问题:用户连接到机器上的服务,例如 IIS 网站或 SQL Server 数据库。站点或数据库需要访问网络资源,例如文件共享(最常见)或不同服务器上的数据库。权限被拒绝。

这是因为运行该服务的用户首先没有网络权限,或者如果有,则它无权访问远程资源。

我一遍又一遍地遇到这个问题,并且厌倦了没有一个真正可靠的方法来处理它。

以下是我所知道的一些解决方法:

  • 以被授予高权限的自定义域用户身份运行 IIS

    如果一次只授予一个文件共享权限,那么每次我想从新共享中读取时,我都必须要求网络管理员为我添加它。最终,随着许多网站从许多共享中读取,它会变得非常复杂。如果只是为用户打开了访问我们域中的任何文件共享的权限,那么这似乎是一个不必要的安全表面区域。

    这也适用于在 IIS 上运行的所有站点,而不仅仅是需要访问的选定站点或虚拟目录,这是进一步的表面积问题。

  • 做同样的事情,但使用应用程序池或单独设置凭据

    不必以特定用户身份运行整个 IIS 实例:可以将每个站点、应用程序和文件夹设置为在特定应用程序池或手动选择的一组凭据下运行。这解决了表面积问题的一小部分,但并没有真正解决有关管理权限粒度和跨许多资源这样做的其他问题。

  • 仍然使用 IUSR 帐户但给它网络权限并在远程资源上设置相同的用户名(不是域用户,本地用户)

    这也有它的问题。例如,我正在使用一个文件共享,我拥有共享的完全权限,但我无法登录计算机。所以我必须找到合适的管理员并让他为我做这件事。任何时候必须更改,这是对管理员的另一个请求。

  • 允许 IIS 用户以匿名方式连接,但将用于匿名访问的帐户设置为高权限帐户

    这甚至比给予 IIS IUSR 完全权限更糟糕,因为这意味着我的网站首先不能使用任何类型的安全性。

  • 使用 Kerberos 连接,然后委托

    这在原则上听起来不错,但有各种各样的问题。首先,如果您使用的虚拟网站的域名不是基本机器名称(我们经常这样做),那么您必须使用 Microsoft 的 Web 服务器上的服务主体名称SetSPN 实用程序。它很复杂,而且显然容易出错。此外,您必须要求您的网络/域管理员更改 Web 服务器和域帐户的安全策略,以便他们“受信任进行委派”。如果您没有完全正确地完成所有事情,那么突然之间您想要的 Kerberos 身份验证是 NTLM,并且您只能模拟而不是委托,因此无法以用户身份通过​​网络进行访问。还,

  • 创建获取网站资源的服务或 COM+ 应用程序

    服务和 COM+ 包使用它们自己的一组凭据运行。作为高权限用户运行是可以的,因为他们可以确保自己的安全并拒绝不合法的请求,将控制权交给应用程序开发人员而不是网络管理员。问题: 我正在使用一个 COM+ 程序包,它在 Windows Server 2000 上正是这样做的,以将高度敏感的图像传送到安全的 Web 应用程序。我尝试将网站移至 Windows Server 2003,但突然被拒绝实例化 COM+ 对象的权限,很可能是注册表权限。我摸索了很多,并没有解决问题,部分原因是我不愿意给 IUSR 帐户完整的注册表权限。这似乎与仅以高权限用户身份运行 IIS 一样糟糕。

    注意:这实际上非常简单。在您选择的编程语言中,您创建一个带有函数的类,该函数返回您想要的对象的实例(例如 ADODB.Connection),并构建一个 dll,您将其注册为 COM+ 对象。在您的 Web 服务器端代码中,您创建类的实例并使用该函数,并且由于它在不同的安全上下文下运行,因此对网络资源的调用有效。

  • 将驱动器号映射到共享

    这理论上可行,但在我看来,这并不是一个好的长期策略。尽管可以使用特定凭据创建映射,并且这可以由网络管理员以外的其他人完成,但这也意味着共享驱动器过多(小粒度)或对整个文件授予过多权限服务器(大粒度)。另外,我还没有弄清楚如何映射驱动器以便 IUSR …

iis authentication network-share delegation impersonation

5
推荐指数
1
解决办法
2787
查看次数