有人可以向我解释ASP.NET信任级别吗?

时间:2010-06-22 15:52:15

标签: asp.net security

我已经听过很多关于信任级别的信息,如果有人试图向我解释,但仍然无法给出我将一个信任级别应用于另一个信任级别的情况。

我已阅读MSDN's article,但这对我没有太大帮助。

有人可以提供一个真实世界的例子,说明何时您想要使用各种级别(Full,High,Medium,Low和Minimal),并解释如果我使用的话,我将面临什么样的安全风险?错了吗?

3 个答案:

答案 0 :(得分:3)

This article可能比你正在阅读的技术要好得多。

这是最好的部分:

  

中等信任摘要

     

对媒介的主要限制   信任Web应用程序是:

     
      
  • OleDbPermission不可用。这意味着你无法使用   ADO.NET托管的OLE DB数据   提供者访问数据库。然而,   您可以使用托管SQL Server   提供者访问SQL Server   数据库。

  •   
  • EventLogPermission不可用。这意味着你不能   访问Windows事件日志。

  •   
  • ReflectionPermission不可用。这意味着你无法使用   反射。

  •   
  • RegistryPermission不可用。这意味着你不能   访问注册表。

  •   
  • WebPermission受到限制。这意味着您的应用程序只能   与地址或范围通信   您在中定义的地址    元件。

  •   
  • FileIOPermission受到限制。这意味着您只能访问文件   在你的应用程序的虚拟   目录层次结构你的申请   被授予读,写,追加和   您的PathDiscovery权限   应用程序的虚拟目录   层次结构。

  •   
  • 您也无法打电话   非托管代码或使用   企业服务。

  •   

一个简单的现实世界的情况,想象你需要这个,如果你是一个ISP提供托管给人们。允许任何人编写可以访问文件系统的代码意味着任何人都可以在您的服务器上做任何他们想做的事情,这可能是托管多个客户端。

答案 1 :(得分:1)

虽然不是专家,但我会给出一个比较常见的信任例子,如果你通过某个供应商以每月10美元的价格通过共享主机购买主机,那么你无法直接访问该机器,分配的存储空间。在这种情况下,您通常会获得中等信任,因为托管服务商希望限​​制您可以执行的操作(确保您不能删除或修改不应该执行的操作),并且无法访问某些资源(例如尝试读取您有权访问的文件夹以外的文件和其他任务。

我们可以完全访问我们托管网站的机器,并且我们完全信任它,因为它专用于我们的网站而不是共享资源,所以我们不关心它。

答案 2 :(得分:0)

信任级别的问题在于,如此多的插件需要提升的权限,某些类型的应用程序根本无法在其下工作。

我个人看到Crystal Reports和HTML到PDF转换工具在Medium Trust下失败 - 在应用程序虚拟目录之外的Temp文件夹中需要FileIOPermission。我也看到由于某些信任级别而阻止TCP套接字连接的问题。

去年我在网络应用程序中遇到了一个相当恼人的问题,其中安全性需要中等信任,但写入事件日志也是如此!

幸运的是,您可以在服务器上的machine.config中覆盖Trust级别(如果您有权访问它),或者如果您的服务器配置为允许它覆盖machine.config文件,则覆盖web.config。

这样做会破坏固定信任级别的目的但是......