WSS 代码执行的权限提升

原创 2008年05月24日 13:38:00

WSS 代码执行的权限提升

概述:

WSS 默认使用身份模拟执行代码,也就是说用当前登录的用户身份执行Web Part或者自定义应用程序的代码访问。在大多数情况下,这种机制能够准确并严格地控制了标准权限的用户他对特定网站资源和敏感数据的访问,这也是我们想要达到的目标。

然而,有时候在一些特殊的场景,你的代码必须执行wss 对象某些受限制的方法,即便请求者是没有这个权限的用户。那么在这种情况下,我们需要提升普通用户执行代码的权限。

实现方法:

SPSecurity.RunWithElevatedPrivileges(delegate()

{

    // 需要提升权限执行的代码

});

事例:

获取网站集owner 的 名称 SPSite.Owner.Name

默认是需要网站集管理员权限的用户才能得到,如果没有执行代码权限提升,以一个普通用户去执行SPSite.Owner.Name,系统会报一个”拒绝访问”的错误。

然而执行了如下代码,我们普通权限的用户,也可以成功得访问到SPSite.Owner.Name

SPSite siteColl = SPContext.Current.Site;

SPWeb site = SPContext.Current.Web;

SPSecurity.RunWithElevatedPrivileges(delegate() {

using (SPSite ElevatedsiteColl = new SPSite(siteColl.ID)) {

using (SPWeb ElevatedSite = ElevatedsiteColl.OpenWeb(site.ID))

{

        //以SHAREPOINT"System account 系统帐号身份运行

      string SiteCollectionOwner = ElevatedsiteColl.Owner.Name;    

    }

 }

});

注意:

在使用SPSecurity.RunWithElevatedPrivileges权限提升的代码里头,必须实例化SPSite,SPWeb对象,而不能使用Microsoft.SharePoint.SPContext.Current属性获得对象,因为那些对象是以当前用户的安全上下文创建的

请使用using方式实例化对象,以便系统能自动执行Dispose,完成资源释放。

上面谈到的这种方式是以最高完全权限的系统管理员帐户去执行代码的,当然我们也可以指定运行代码的帐号:

SPSite siteColl = SPContext.Current.Site;

SPWeb site = SPContext.Current.Web;

SPUser user = site.Users[@"litware/ken"];

SPUserToken userToken = user.UserToken;

 

SPSecurity.RunWithElevatedPrivileges(delegate() {

using (SPSite ElevatedsiteColl = new SPSite(siteColl.ID, userToken)) {

using (SPWeb ElevatedSite = ElevatedsiteColl.OpenWeb(site.ID))

{        //以litware"ken身份运行
      string SiteCollectionOwner = ElevatedsiteColl.Owner.Name;    

    }

 }

});

这种方式的话,代码就以litware"ken 的权限来运行,不管ken 的权限是高还是低。

相关文章推荐

【技术分享】CVE-2016-6662:Mysql远程代码执行/权限提升技术分析正式版(9/13 10:47更新)

【技术分享】CVE-2016-6662:Mysql远程代码执行/权限提升技术分析正式版(9/13 10:47更新) 作者:苦逼司马(凌晨四点收到投稿,...

CCNx协议安装和代码执行策略

  • 2012年11月16日 21:10
  • 41KB
  • 下载

U-BOOT代码执行分析

  • 2010年07月25日 20:36
  • 34KB
  • 下载

提高PHP代码执行效率小结

1、如果能将类的方法定义成 static,就尽量定义成 static,它的速度会提升将近4倍。2、$row[‘id’] 的速度是 $row[id] 的7倍。3、echo 比 print 快,并且使用 ...

ASP.NET提高代码执行效率

  • 2011年04月28日 14:29
  • 36KB
  • 下载

OpenSSH 曝远程代码执行漏洞,尽快升级

导读 12月19日,国外漏洞平台 securityfocus上发布了最新的 OpenSSH(CVE-2016-10009)远程代码执行漏洞。由于问题出在ssh-agent,这个进程默认不启动、只...

统计代码执行时间对象

  • 2017年03月06日 14:52
  • 1KB
  • 下载

Struts 2最新0day破坏性漏洞(远程任意代码执行)等的重现方法

Struts 2的远程任意代码执行和重定向漏洞,是这两天互联网上最重大的安全事件,据说国内互联网企业中,很多电商纷纷中招,应该已经有大规模的用户隐私泄露。这里我们简单总结下怎样在自己机子上重现这些漏洞...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:WSS 代码执行的权限提升
举报原因:
原因补充:

(最多只允许输入30个字)