说说ASP.NET的表单验证

  FormsAuthentication是ASP.NET运行时提供的一种Web身份验证方案,以cookie为信息载体,同其它身份验证方案相比,此方案普遍应用于各种的Web应用中,其实现原理其实和具体的Web服务器编程技术关系不大,理解FormsAuthentication,一样能够在Java或PHP中使用。web

  FormsAuthenticationTicket实际上是一个cookie,多数封装的操做也是从cookie使用的角度去实现的。出于业务的需求,咱们会在经过身份认证的浏览器写入用户有关的信息,用户信息结合cookie属性能够构成基本的票据,票据是下次用户请求时认证和受权的依据。这是很是简便的思路,但若是这个依据是公开的、可构造的,那么这个票据的意义将大打折扣。经过构造票据就能够达到躲避认证、伪造身份和受权的目的,这对于应用而言很是危险。编程

  众所周知,网络通讯的信道是非安全的公共网络。对于信息须要保护的系统,认证的过程和认证后的票据应该处于被保护的状态。首先,票据应该是加密的,加密虽然增长了读取票据是额外的解密运算,但增长了掌握票据内容的难度。FormsAuthentication的提供的Encrypt方法加密存储在浏览器的票据cookie,这能够说是APS.NET的一个安全福利。然而如前所说,加密仅仅是增长了掌握票据内容的难度,若是某人利用别人的合法认证票据,应用系统没法基于票据规避身份盗用的状况。浏览器

  cookie重放,或是票据盗用是Web安全中常常出现的身份冒用攻击。这种攻击方法不须要对cookie进行逆向理解,只要将获取的用户cookie注入浏览器中,就能够以该用户的身份访问目标站点,非法获取网络资源。目前国内多数微博服务、邮件服务都有这样的状况。安全

  那么这样的状况可否规避。一般咱们的系统在业务设计时,总会信赖本身写入票据的内容,判别身份时也仅仅读取身份标识,就职务当前的操做由对应用户发出。这个很是要命的单因子断定是产生身份冒用的一个根源,解决的办法就是在用户信息中输入更多的认证时的网络状况,如浏览器的IP、特征等信息,甚至包括有服务器生成的惟一字符,在后续的再认证中在业务流程前加入额外信息的校验。双因子认证,利用当时的环境信息做为安全认证的重要内容,能够在必定程度上增长系统的安全度。服务器

相关文章
相关标签/搜索