浅析ASP.NET安全性分析(加强asp.net 1.1/2.0安全性)

ASP.NET安全性是Web 应用程序中一个非常重要的方面,它涉及内容非常广泛,不能在一篇文章内说明所有的安全规范,本文讲述如何利用IIS以及Forms 身份验证构建安全的 ASP.NET 应用程序,它是目前被使用最多最广的验证/授权方式.

本文分别以ASP.NET1.1与ASP.NET2.0在Forms 身份验证上的实现方法,以及ASP.NET2.0较上一版本有哪些改进或变化进行说明.相信读者都己经看过许多类似这样的文章,不伦是在网上或是某些专业书籍上,最近又有模式&实践小组成员发布WCF安全模型指南,可见构建网站安全总是不过时的话题,作者认为此文也绝对是您应该收藏的参考资料.

ASP.NET安全性的工作原理

网站在安全性方面有一个常见的要求:特定的页面仅允许某些成员或其他经过身份验证的用户浏览.充分利用Forms身份验证是最好的方式.

身份验证

从实现机制来说ASP.NET1.1与ASP.NET2.0 的安全模型是一致的.首先配置网站为Forms 身份验证模式,之后用户访问网站的URL,Forms 身份验证系统会将未经身份验证的请求重定向到指定的登录页.用户输入凭据(用户名密码)并提交该页.如果验证程序验证用户的身份合法,则系统会向客户端发出一个特定 Cookie(.NET1.1不支持无Cookie模式),它代表用户的身份验证票据.这样后续的请求中,客户端浏览器会把该Cookie一同发送致服务器,如果该Cookie有效则用户通过身份验证并允许对原始请求的资源的访问.

授权

如果用户的请求被验证通过了,但是他请求的URL是否允许用户访问了呢,这就用到了授权.可以通过应用程序配置文件来进行授友也可以在程序中使用代码来验证用户是否有资格访问该资源.如果授权失败,则 ASP.NET 将用户重定向到登录页.如果用户已被授权,则将允许用户访问受保护资源.

ASP.NET1.1实现方式

ASP.NET1.1的实现方式非常简单,不过我们还是需要手写一些代码的,下面我们就一步一步地实现.应用程序配置节的详细说明请参考MSDN相关文档.

代码如下:

<configuration>
<system.web>
<authenticationmodeauthenticationmode="Forms">
<formsnameformsname=".ASPXCOOKIEAUTH"loginUrl=
"Login.aspx"protection="All"timeout="30"path="/"/>
authentication>
<authorization>
<denyusersdenyusers="?"/>
authorization>
system.web>
<locationpathlocationpath="Admin">
<system.web>
<authorization>
<allowrolesallowroles="Admins"/>
<denyusersdenyusers="*"/>
authorization>
system.web>
location>
configuration>

IDC加强asp.net 1.1/2.0安全性一篇技巧

ASP.NET 1.1:

打开 C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\CONFIG\machine.config

设置:
< location allowOverride="false">
< identity impersonate="true" userName="" password=""/>

ASP.NET 2.0 以上:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\web.config

设置:
< identity impersonate="true"/>

如果没有此两项,分别进行增加:

< location allowOverride="true"> 改为:< location allowOverride="false">
< 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=""/>
< identity impersonate="true"/> < !-- 这里增加 -->
< /system.web>
< /location>

(0)

相关推荐

  • asp.net网站安全从小做起与防范小结

    以下都以ASP.NET开发网站为例. 1.sql注入漏洞. 解决办法:使用存储过程,参数不要用字符串拼接.简单改进办法:使用SqlHelper和OledbHelper 2.跨站脚本漏洞 解决办法:"默认禁止,显式允许"的策略.具体参考:从客户端检测到有潜在危险的Request.Form值,禁止提交html标记(<>等被转义成<) 3.上传漏洞 解决办法:禁止上传目录的运行权限.只给读取权限.另外要禁止上传非法类型文件.不仅仅是aspx类型,包括很多,甚至htm.htm

  • asp.net安全、实用、简单的大容量存储过程分页第1/2页

    基本上我下面要讲述的侧重点是如何使用,因为其实分页存储过程网上很多,如果你懒得找,那么可以直接使用下面这个我经过测试,并通过修改,网上评价都比较高的分页存储过程. 这个分页主要优点如下: 1.大容量下的数据分页,我的测试数据是520W. 2.我结合aspnetpager控件,使得使用起来更加方便. 3.为了结构清晰,实用3层. 4.安全,你就放心的用吧.SQL注入的问题在这里你可以放心了.网上有文章说只要存储过程是用sql拼接的就存在sql注入的问题,并且直接在sql查询分析器中测试了注入的情况

  • 浅谈ASP.NET MVC应用程序的安全性

    前言:保护Web应用程序的安全性看起来时间苦差事,这件必须要做的工作并不能带来太多的乐趣,但是为了回避尴尬的安全漏洞问题,程序的安全性通常还是不得不做的. 1.ASP.NET Web Forms开发人员 (1)因为ASP.NET MVC不像ASP.NET Web Forms那样提供了很多自动保护机制来保护页面不受恶意用户的攻击,所以阅读本博客来了解这方面的问题,更明确的说法是:ASP.NET Web Forms致力于使应用程序免受攻击.例如: 1)服务器组件对显示的值和特性进行HTML编码,以帮

  • ASP.NET Internet安全Forms身份验证方法

    本文分别以ASP.NET1.1与ASP.NET2.0在Forms 身份验证上的实现方法,以及ASP.NET2.0较上一版本有哪些改进或变化进行说明.相信读者都己经看过许多类似这样的文章,不伦是在网上或是某些专业书籍上,最近又有模式&实践小组成员发布WCF安全模型指南,可见构建网站安全总是不过时的话题,作者认为此文也绝对是您应该收藏的参考资料. ASP.NET 安全性的工作原理 网站在安全性方面有一个常见的要求:特定的页面仅允许某些成员或其他经过身份验证的用户浏览.充分利用Forms身份验证是最好

  • 在asp.net中使用加密数据库联接字符串保证数据安全

    在我们发布网站时,加密web.config,这样可以有效保证数据库用户和密码安全,其步骤如下: 1.添加密钥 执行:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis -pc "hnlaw" -exp 其中"hnlaw"为密钥名称 2.添加web.config节点 在web.config的<configuration></configuration>之间添加: <con

  • FCKeditor .NET的配置、扩展与安全性经验交流

    前言 FCKeditor是使用非常广泛的HTML编辑器,本文从 ASP.NET 的使用场景对 FCKeditor 与 FCKeditor.NET 的配置.功能扩展(如自定义文件上传子目录.自定义文件名.上传图片的后期处理等).以及安全性进行初步的阐述. 希望能帮助有同样需求的同仁节省一点时间:也希望各位能指正其中的不足.谢谢. 一.自定义 FCKeditor 的 BasePath BasePath 即FCKeditor在网站中的相对路径,默认值是 /fckeditor/,最好在Web.confi

  • .net Cookies安全性实践分析

    跨站脚本攻击一直是Web上常见的手段之一,攻击一般是劫持用户会话,拿到私有的钥匙.如何劫持这个会话呢? 一.Sniffer(这里采用的软件是Sniffer,java版的那个) Sniffer监听会话是不可护的,就和KOF里拉尔夫的宇宙幻影一样,只要打中,一定是致命的. 上图,就是一组侦听数据,当然这里侦听的是我本机的数据.实际上是可以侦听局域网,甚至广域网上的数据.得到一组16进制的值.可以用以下代码获得其值: 复制代码 代码如下: string bytestr = ""; strin

  • Asp.net 字符串操作基类(安全,替换,分解等)

    /********************************************************************************** * * 功能说明:常用函数基类 * 作者: 刘功勋; * 版本:V0.1(C#2.0);时间:2006-8-13 * * *******************************************************************************/ /***********************

  • 浅析ASP.NET安全性分析(加强asp.net 1.1/2.0安全性)

    ASP.NET安全性是Web 应用程序中一个非常重要的方面,它涉及内容非常广泛,不能在一篇文章内说明所有的安全规范,本文讲述如何利用IIS以及Forms 身份验证构建安全的 ASP.NET 应用程序,它是目前被使用最多最广的验证/授权方式. 本文分别以ASP.NET1.1与ASP.NET2.0在Forms 身份验证上的实现方法,以及ASP.NET2.0较上一版本有哪些改进或变化进行说明.相信读者都己经看过许多类似这样的文章,不伦是在网上或是某些专业书籍上,最近又有模式&实践小组成员发布WCF安全

  • 学习ASP的理由 分析小结

    在Google上搜一下,可以发现一大堆对ASP不好的评价,什么运行速度慢.异常处理机制不好.缺乏面向对象机制.开发效率低.漏洞多等等.为了让大家对ASP有个正确的认识,我先为它正名. 一.ASP不慢,慢的是数据库 几年前,我用动网论坛程序架了一个BBS,这套程序就是当时经典的ASP+Access架构.我也遇到了某些人所说的论坛慢,有时候卡死不动的问题.然而,自从我换上SQL Server数据库以后问题就解决了.所以罪魁祸首乃Access.程序执行所需的时间是毫秒级别的,在这个级别内,无论是10毫

  • ASP基础入门第一篇(ASP技术简介)

    本文将以如何建立基于IIS 的ASP 动态网站为中心向大家一步一步地揭示动态商业网站设计的真正奥秘.为了使各位能够全面.细致地掌握 ASP 的开发技巧,本文今后将采取连载的形式,手把手地教你如何建立属于自己 ASP 动态网站.由于本文是作者根据自己的学习和实践经验并结合了一些外文资料而写成的,因此不免会有一些偏颇,希望各位见谅. Microsoft Active Server Pages 即我们所称的ASP ,其实是一套微软开发的服务器端脚本环境, ASP 内含于 IIS 3.0 和 4.0 之

  • PJBlog安全性分析

    PJBlog2是PuterJam开发的一款免费的ASP + Access的个人blog系统,这几天偶想弄个blog来玩玩,经过比较选中了功能.界面都相对较好的PJBlog2.经过试用,感觉这blog还不错,也发现几个安全方面的小问题,就把我的一点点见解发出来.我分析的版本是05年12月11日发布的PJBlog2 v2.4.1211版本. 一. 密码加密算法 PJBlog2没有采用常用的MD5算法对用户密码加密,而是使用的SHA1算法.SHA1算法跟MD5类似,也是单向散列函数,不过它对任意长度的

  • ASP基础入门第二篇(ASP基础知识)

    本篇将继续介绍一些用 ASP 编写的WEB 动态功能.由于 WEB 浏览器标准的不一致从而使得如何能够让自己制作的网站去适应各种不同的浏览器成为了广大网站设计者最为头疼的事,在如今的形势之下,我们不肯也不可能去抛弃Netscape 或 IE 中的任何一种客户群,但我们有时候又不得不去考虑客户端浏览器的实际浏览效果,过去我们常用JavaScript 编写一段程序来辨别客户端使用的不同的浏览器,那么今天就让我们来看看如何使用ASP 更为便捷且精确地达到这一目的.将以下代码,剪贴到你的Notebook

  • 深入浅析knockout源码分析之订阅

    Knockout.js是什么? Knockout是一款很优秀的JavaScript库,它可以帮助你仅使用一个清晰整洁的底层数据模型(data model)即可创建一个富文本且具有良好的显示和编辑功能的用户界面.任何时候你的局部UI内容需要自动更新(比如:依赖于用户行为的改变或者外部的数据源发生变化),KO都可以很简单的帮你实现,并且非常易于维护. 一.主类关系图 二.类职责 2.1.observable(普通监控对象类) observable(他其是一个function)的内部实现: 1.首先声

  • 安全技术—RSA公钥密码体制安全性分析

    引言  RSA密码系统是较早提出的一种公开钥密码系统.1978年,美国麻省理工学院(MIT)的Rivest,Shamir和Adleman在题为<获得数字签名和公开钥密码系统的方法>的论文中提出了基于数论的非对称(公开钥)密码体制,称为RSA密码体制.RSA是建立在"大整数的素因子分解是困难问题"基础上的,是一种分组密码体制.  介绍公钥密码体制(背景)  1.对称密码体制  对称密码体制是一种传统密码体制,也称为私钥密码体制.在对称加密系统中,加密和解密采用相同的密

  • ASP.NET 缓存分析和实践浅析提高运行效率

    向数据层.业务逻辑层.UI 或输出层添加缓存支持.内存现在非常便宜 - 因此,通过以智能的方式在整个应用程序中实现缓存,可以获得很大的性能提高. 缓存可以掩盖许多过失 缓存是一种无需大量时间和分析就可以获得"足够良好的"性能的方法. 这里再次强调,内存现在非常便宜,因此,如果您能通过将输出缓存 30 秒,而不是花上一整天甚至一周的时间尝试优化代码或数据库就可以获得所需的性能,您肯定会选择缓存解决方案(假设可以接受 30 秒的旧数据).缓存正是那些利用 20% 付出获得 80% 回报的特

  • Dvbbs7.1 sp1 SQL版savepost.asp注入漏洞分析、利用及防范

    一.概述    漏洞介绍: http://coolersky.com/leak/programme/bbs/2006/0515/515.html    前几天就听Hak_Ban说有人把dvbbs7的一个注入漏洞给发布出去了,一直也没时间看看,下午跟Edward要了个链接看了看: http://www.eviloctal.com/forum/read.php?tid=22074    本站转贴为: http://coolersky.com/articles/hack/analysis/progra

  • 新型ASP后门源代码分析

    本是为了逃LAKER2兄 查ASP木马程序的  现在已经挑战成功,已经加为检查对象了.公布出代码给冰点的朋友使使,希望大家喜欢! 利用的是ADOX.Catalog组件 复制代码 代码如下: <%    'code by netpatch   dim dbfile,sql    db="netpatch.asp"   dbfile=server.MapPath(db) set ydb=server.CreateObject("ADOX.Catalog")   

随机推荐