ASP.NET的安全性探讨

    张捷

    

    摘 要:随着互联网技术的不断发展,ASP.NET成了当前社会各种网站程序开发过程中解决问题的优质工具。文章通过概述ASP.NET,研究加强ASP.NET安全性的前提,具体分析了ASP.NET在应用程序中为验证用户身份提供的4种方法,提出加强ASP.NET安全性的几项措施,以期促进网络技术的发展。

    关键词:ASP.NET;安全性;验证

    随着ASP.NET被各大网站电子商务企业及应用程序开发的广泛应用,ASP.NET的安全性成了当前社会的网络发展的重点,也是需要不断去完善解决的问题。本文结合ASP.NET概念及安全基础,就其应用和安全性进行深入探讨。

    1 ASP.NET的概述

    ASP.NET又被称作为ASP+,但是ASP.NET却又不只是简单升级后的ASP,而是一种微软公司提出的新型脚本语言。ASP.NET是以.NET Framework的Web开发平台作为基础,不仅只是汲取了旧版ASP的各项优点,并且还以Java和VB两种编程软件的语言开发存在的优势作为参照,并且溶于许多新颖的特色进行旧版ASP运行过程中错误的修正。在应用程序用于网站开发方面存在的身份验证、容量缓存等多方面的问题,ASP.NET都可以进行相应的解决处理。ASP.NET在代码撰写方面更是可以实现分离页面逻辑与业务逻辑,提高了网页撰写的容易度,使得网页代码撰写变得更加简洁[1]。

    2 加强ASP.NET安全的基础

    ASP.NET帮助应用程序安全运行需要借助Microsoft.NET框架及IZS协助完成,安全性的实现需要以下3点作为基础[2]。

    2.1 身份驗证

    用户从客户端获取相关标识凭据时需要通过身份的验证,例如设置户名密码。身份验证主要是为了进一步确立用户在客户端的身份。在身份验证进行成功通过之后才能给到其访问的权利及资源的获取。

    2.2 授权

    授权主要是为了身份验证成功之后,对身份进行定位并赋予访问获取的权利。一般通过文件授权以及URI.授权来给予其资源访问获取的权利。

    2.3 模拟

    在启用模拟的情况下,ASP.NET应用程序必须借助IIS实现用户的验证,IIS在完成验证之后把验证成功标记传回ASP.NET应用程序,如果在验证过程出现验证失败的情况,那么也将会把验证失败标记传回。由于在使用模拟客户的ASP.NET应用程序需要借助NTFS目录以及文件当中的设置去决定客户的访问请求,因此为了方便访问权利的设置,应用程序所存文件格式应为NTFS。

    3 ASP.NET在应用程序身份验证

    3.1 Windows身份验证

    Windows身份验证的方式与正常情况下的IIS身份验证方法一样。在用户请求访问的时候,实行不允许用户进行匿名访问,实名制访问并且进行身份验证,用这种方式来保障站点不受影响。与此同时,还需要对文件进行变更,并且ASP.NET需要把用户在通过IIS的身份验证时输入的证书,以此作为该应用程序的证书。

    3.2 Forms身份验证

    Forms验证也就是窗体验证,这种验证方式可以较好地支持与用户在身份验证及授权的过程。实行自行撰写在一个用户登录页面上的代码用于用户的身份验证,把验证完的用户身份传送到该客户端的Cookie(储存在用户本地终端上的数据),实行之后该用户二次访问的时候服务端就会收到该用户的身份Cookie。服务端就可以根据不同的目录对用户的访问进行权限控制。由于Forms验证具备较高的灵活性,使用频率相对较高。

    3.3 Passport身份验证

    在使用Passport身份验证措施的时候我们可以将Microsoft Passport(微软护照、微软通行证)和应用程序互相联系。在使用Passport进行身份验证的时候还必须要下载Passport软件开发当中的工具包SDK,与此同时还必须要配置微软公司的应用程序才能使用Passport进行身份验证的服务。该身份验证模式由于相对复杂,较少被应用。

    3.4 使用表单身份验证

    虽然IIS设定为非实名用户依然可以进行访问,但是依旧可以通过ASP. NET中的设置来进行客户端的验证以及授权,这种设置实现方式可以通过表单身份验证的使用。这种身份验证方式主要是通过重定向功能把收到的验证失败请求重新定向与某个特定的页面,用户在这个特定的页面上交的凭据如果通过验证并且被授权成功,那么应用程序便会发送出该用户的身份验证票的验证表单,接着再重新定向与用户起初的请求页面。如果出现用户的二次页面请求,请求中就会直接包括了身份验证表单,二次实现快速身份验证及授权。具体如图1所示。

    4 加强ASP.NET安全性的措施

    ASP.NET的代码中存在的篡改参数,信息泄漏,结构化查询语言(Structured Query Language,SQL)注入式攻击,跨站脚本执行等都是其安全性能方面主要问题。提高ASP.NET安全性措施有以下几点[3]。

    4.1 域验证器验证参数的合法性

    超级文本标记语言(HyperText Markup Language,HTML)表单中所提交的参数成了用户输入参数的源头,因此,应该加强对这些参数合法性的验证,一定程度上避免了服务器危机的出现。通过使用域验证器致使ASP.NET开发者对域的值采取限制。比如,用户在输入域值的时候将会受到域验证器的限制,域值必须配备相应的表达公式。特殊字符必然是为首当禁止,用户输入必须是集合某些合法字符的内容。

    4.2 预防验证操作参数漏洞

    仅仅是靠运用域验证器对输入域值进行验证达不到防止所有参数的攻击,某些经过修改之后的参数依然可以对服务器进行攻击。在对数值范围进行检查的时候,还需要指定正确的数据。意思就是在ASP.NET进行范围检查控件的时候需要对输入域的数据要求指定相应的Type 属性,而String就是Type的默认值。利用ype属性指定为Integer的特性,以此保障输入值都是真实整数。

    4.3 SQL参数API代替程序员

    由于部门用户在输入域的域值当中录入一些特殊字符,使得SQL的查询失去本来意义,对数据库进行欺骗实现恶意的查询。为了防止这种恶意的方式,不仅可以使用限制输入域值的字符外,另外一种更为有效地防止方法就是使用SQL参数应用程序编程接口(Application Programming Interface,API),改变原来程序员进行构造查询的方式,由编程环境底层API代替。

    4.4 对外发数据进行编码

    Cross-site scripting(跨站脚本执行)就是把一些用户恶意的输入放到HTML页面上。为了防止这种情况,在HTML页面如果出现一些由外部用户数据执行输入验证和HTML编码,必须确保页面只是把数据当成文本,避免页面把输入数据当成类似HTML代码等具备其他特性的内容。

    5 结语

    由于ASP.NET和 ADO.NET身为微软公司.NET构架中的一部分,现已成为开发各种网站程序的主流开发工具,加以有效利用可以很简便地构造出新型的高效安全网站应用程序,具备强大的应用前景。因此,ASP.NET的安全性一直都是社会大众关注的焦点,本文通过了解ASP.NET安全性的实现基础,具体对ASP.NET的Windows身份验证、Forms身份验证、Passport身份验证、表单身份验证进行分析,提出相关的加强ASP.NET安全性的措施,希望在网络安全方面起到良好的促进作用。

    [参考文献]

    [1]周广清,刘建平.ASP.NET页面跳转和参数传递[J].医疗卫生装备,2015(3):73-75,102.

    [2]崔海波.基于ASP.NET架构Web应用的安全性研究及应用[J].福建电脑,2015(3):87-89.

    [3]邹宏伟,陈晓涛.基于ASP.NET的网络办公系统设计[J].信息与电脑(理论版),2017(8):120-122.

相关文章!
  • 融合正向建模与反求计算的车用

    崔庆佳 周兵 吴晓建 李宁 曾凡沂<br />
    摘 要:针对减振器调试过程中工程师凭借经验调试耗时耗力等局限性,引入反求的思想,开展了

  • 基于MATLAB 的信号时域采样及

    唐敏敏 张静摘要:频率混叠是数字信号处理中特有的现象,发生频率混叠后,信号会分析出错误的结果。而采样过程中,由于频率不够高,采样出

  • 卫星天线过顶盲区时机分析

    晁宁+罗晓英+杨新龙<br />
    摘 要: 分析直角坐标框架结构平台和极坐标框架平台结构星载天线在各自盲区状态区域附近的发散问题。通过建