ASP.NET的安全该如何设置

ASP.NET的安全该如何设置,在我们配置好服务器环境后,把该搞好的权限都做好后,往往忽略了asp.net的权限,导致了服务器的不安全,那么ASP.NET的安全该如何设置呢?

首先我们得找到ASP.NET的配置文件,位置在C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\web.config (注意不同版本红色部分目录可能不一样)

找到配置文件后,我们该如何去配置才算安全呢?

懒人方法:

 

1.trust level设置为"High",如<trust level="High" originUrl=""/>

2.同时可以配合系统本身的FSO权限设置站点根目录的web.config为只读。

 

 

备注提示:

0.FullTrust 是绝对危险的
1.切记要设置逻辑正确的策略,不要被攻击者用shell来重写策略文件。
2.从webshell里执行起来的exe不受asp.net的策略限制。
3.反射是个危险的方法
4.花点时间配置安全策略是一劳永逸的事情

 

默认web.config的权限设置节如下:

<location allowOverride="true">
        <system.web>
            <securityPolicy>
                <trustLevel name="Full" policyFile="internal" />
                <trustLevel name="High" policyFile="web_hightrust.config" />
                <trustLevel name="Medium" policyFile="web_mediumtrust.config" />
                <trustLevel name="Low"  policyFile="web_lowtrust.config" />
                <trustLevel name="Minimal" policyFile="web_minimaltrust.config" />
            </securityPolicy>
            <trust level="Full" originUrl="" />
        </system.web>
</location>

 

level:必选的 String 属性

Full:指定无限制的权限。授予 ASP.NET 应用程序访问任何资源的权限(受操作系统安全性的限制)。支持所有被授予特权的操作。该设置在 AspNetHostingPermissionLevel 枚举中称为 Unrestricted。默认值是 Full(无限制)。

High:指定高级别的代码访问安全性,这意味着应用程序不能执行下列任何操作。
•调用非托管代码。

•调用服务组件。

•写入事件日志。

•访问 Microsoft“消息队列”队列。

•访问 ODBC、OleDb 或 Oracle 数据源。


Medium:指定中等级别的代码访问安全性,这意味着除了 High 限制外,ASP.NET 应用程序还不能执行下列任何操作。
•访问应用程序目录以外的文件。

•访问注册表。


Low:指定低级别的代码访问安全性,这意味着除了 Medium 限制之外,应用程序还不能执行下列任何操作。
•写入文件系统。

•调用 Assert 方法来扩展对资源的权限。

Minimal:指定最低级别的代码访问安全性,这意味着应用程序只有执行权限。