"Full" 信任模式的风险

Risks of "Full" trust mode

我们在 SSRS 11 和 .NET 4.5 上面临 the slow performance issue

A solution是在web.config中将trust模式设置为full。这样修改有什么风险?

首先你可以提供一个Full Trust level for only assemblies of your need via FullTrustAssembliesSection in web.config, and this can be done only for a signed assemblies:

<system.web>
  <securityPolicy>
    <fullTrustAssemblies>
      <add assemblyName="MyCustomAssembly"
        version="1.0.0.0"
        publicKey="a 320 hex character representation
        of the public key blob used with a
        signed assembly"
      />
    </fullTrustAssemblies>
  </securityPolicy>
</system.web>

请注意

The default policy for evaluating permissions grants full trust to the Global Assembly Cache (GAC) assemblies and partial trust to the other assemblies.

另请注意,您可以 configure trust level for an application in IIS

所以这个选项可以帮助您确定在 FullTrust 策略下应该 运行 的确切程序集,并将其他程序集设置为默认值。但是,如果您仍然担心您的应用程序或某些库的信任级别,我建议您调查 Trust Level table 并回答问题:

  • 我们的应用程序可以使用第三方组件吗?
  • 我们是否运行以尽可能低的信任级别设置他们的代码?
  • 在我们的应用程序中究竟应该能够执行哪些自定义代码?
  • 我们可以通过 identity for an application 管理此权限吗?
  • 我们可以通过 CAS rules 管理此权限吗?
  • 我们可以将第三方代码移到单独的 sandbox ApplicationDomain 吗?

之后,您可以根据需要管理您的应用程序安全性。希望这会有所帮助。

另请参阅:
* ASP.NET Application Security in Hosted Environments * Security Practices: ASP.NET Security Practices at a Glance