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:指定最低级别的代码访问安全性,这意味着应用程序只有执行权限。
版权声明:《 ASP.NET的安全该如何设置 》为王健原创文章,转载请注明出处!
最后编辑:2013-1-16 10:01:25