设计 任务书 文档 开题 答辩 说明书 格式 模板 外文 翻译 范文 资料 作品 文献 课程 实习 指导 调研 下载 网络教育 计算机 网站 网页 小程序 商城 购物 订餐 电影 安卓 Android Html Html5 SSM SSH Python 爬虫 大数据 管理系统 图书 校园网 考试 选题 网络安全 推荐系统 机械 模具 夹具 自动化 数控 车床 汽车 故障 诊断 电机 建模 机械手 去壳机 千斤顶 变速器 减速器 图纸 电气 变电站 电子 Stm32 单片机 物联网 监控 密码锁 Plc 组态 控制 智能 Matlab 土木 建筑 结构 框架 教学楼 住宅楼 造价 施工 办公楼 给水 排水 桥梁 刚构桥 水利 重力坝 水库 采矿 环境 化工 固废 工厂 视觉传达 室内设计 产品设计 电子商务 物流 盈利 案例 分析 评估 报告 营销 报销 会计
 首 页 机械毕业设计 电子电气毕业设计 计算机毕业设计 土木工程毕业设计 视觉传达毕业设计 理工论文 文科论文 毕设资料 帮助中心 设计流程 
垫片
您现在所在的位置:首页 >>理工论文 >> 文章内容
                 
垫片
   我们提供全套毕业设计和毕业论文服务,联系微信号:biyezuopin QQ:2922748026   
基于ASP.NET的Web网络应用程序开发的安全策略实践
文章来源:www.biyezuopin.vip   发布者:毕业作品网站  


    摘要:Web网络应用开发中,安全性是要考虑的关键问题,本文通过开发系统实践,从系统规划阶段、设计开发阶段、发布运行阶段三个方面详细阐述安全策略的实现,总结出如何充分利用ASP.NET的安全机制、数据库安全控制、增强管理员网络安全防范意识,构建一个性能安全的Web应用程序
    关键词:Web应用程序;web.config;认证和授权;视图;存储过程

1 前言 http://www.16sheji8.cn/

    微软公司推出的ASP.NET,可以非常方便和高效地规划、设计、开发和发布Web网络应用程序。笔者利用ASP.NET为新疆职工培训中心开发了运行在校园网上的网络办公管理系统。该系统分为管理部门和教学部门两个角色,实现了数据存储、浏览查询和教学分析统计功能,提高了培训中心的信息化管理和校园网的利用价值。在整个系统的开发过程中,考虑最多的就是安全问题,相信这也是所有开发人员开发Web网络应用程序所必须面对的问题。因此本文针对基于ASP.NET的Web网络应用程序开发的安全问题,以我们开发的系统为例,从3个方面来阐述实际解决策略:
  (1)系统规划阶段的安全策略;
  (2)设计开发阶段的安全策略;
  (3)发布运行阶段的安全策略。
希望我们的实践能对利用ASP.NET开发Web网络应用程序的相关技术人员提供参考和借鉴。

2 安全策略实践

  2.1系统规划阶段
    Web网络应用程序,就是运行在Web应用服务器上的一个虚拟目录及其子目录下的所有文件、网页、模块以及可执行代码的总和。根据系统需求分析,用户分为管理部和教学部(对数据的操作权限有区分),因此建立两个目录分别存放相应的网页文件。另外,还有数据库文件夹、样式文件夹、网页模版文件夹等。而对数据库表的操作文件放在特殊的文件夹bin下,因为该目录是禁止任何浏览器访问的,从而避免了远程客户下载代码的可能性。应用程序根目录下除了上述目录外,还有两个重要的应用程序级文件:global.asax 和web.config(下文详细分析)。总之,文件目录的规划是按类别存放文件,重要文件存在bin目录下。 http://www.16sheji8.cn/
2.2设计开发阶段
    主要从后台的数据库设计、配置文件web.config及前台界面设计三个内容,着重阐述对安全问题的解决策略。
2.2.1数据库设计
    为了提高访问数据的效率和安全性,能在后台做的事情,就在后台完成,能分开独立做的事情,就分开独立实现。
    (1)充分利用后台数据库系统的视图和存储过程,如:创建带参数的视图,实现不同角色身份的用户对各自权限范围内的数据访问。
    (2)报表设计及实现:Web应用程序实现动态报表,开始考虑用ASP.NET的数据控件Repeater,可以自由定义灵活的显示方式,但通常比较麻烦,而且在代码中字段名要出现,即:使用数据容器Container.DataItem("字段名")方式来显示数据内容,降低了数据安全性。我们的做法是利用Bussiness Object 公司开发的专业报表软件CrystalReports10设计报表,通过ODBC数据源与数据库连接,生成报表文件(*.rpt)后,在前台利用报表控件CrystalReprotViewer,将报表文件加载到页面实现各种报表。这种把数据源、报表文件、和页面显示文件分开独立实现,不仅丰富了报表显示样式和提高了网络报表生成效率,而且极大地提高了访问数据的安全性。
    (3)用户口令存储问题:不要将实际的口令存储在数据库表中,因为口令直接放在数据库或文件中存在安全隐患,因此要存储加密后的口令。使用时,例如当用户登录时,对口令加密,然后与数据库中存放的加密口令进行比较。实现步骤如下:
首先,导入命名空间:<%@ Import Namespace="System.Web.Security" %>
其次,编写加密函数EncrytPwd:
Function EncrytPwd(Pwd as String,PwdFormat as String)
If PwdFormat="MD5" then
'下面一行得到用MD5算法加密后的字符
EncrytPwd=FormsAuthentication.HashPasswordForStoringInConfigFile(Pwd,"MD5")
'下面一行得到用SHA1算法加密后的字符串
Else if PwdFormat="SHA1"then
EncrytPwd=FormsAuthentication.HashPasswordForStoringInConfigFile(Pwd,"SHA1")
End if http://www.16sheji8.cn/
End Function
2.2.2 配置文件web.config 的安全设置
    web.config文件是一个简单的XML文件,专门用于为应用程序配置系统设定、安全性设定、应用程序设定和会话设定。下面分5个内容介绍安全实践策略。
    (1) 数据库连接字符串常量:Web应用程序网页要大量用到数据库连接,为了提高程序安全性、通用性和可移植性,在配置文件中设置数据库连接字符串常量是很好的方法,在应用程序的web.config文件中添加如下语句:

网页文件使用时,用下列代码实现数据库连接:
Dim strConn As String
strConn=ConfigurationSettings.AppSettings("sqlconntion ")'获取数据库连接字符串
    (2) 认证和授权:HTML表单验证(Forms Authentication),是向开发人员提供确认客户凭证并控制访问权限的技术。在应用程序的web.config文件中添加如下语句:

    授权:就是让用户拥有有效凭证,允许或拒绝访问Web应用程序。在web.config中添加如下语句:

    (3) 虚拟路径的设置:不同用户对不同目录访问权限不同,可以设定虚拟目录来实现

    (4) 设置调试模式提高安全策略:默认情况下,错误信息保存在栈中。如果开启调试模式,ASP.NET在运行中发生错误时,会显示错误行号,方便调试。可以在页面或web.config文件中开启调试模式。例如:

<%@ page debug=”true” %>'开启页面级调试模式

'开启应用程序级调试模式
但发布程序时,要禁用调试模式,否则出错时,有泄露后台代码的隐患。
    (5) 页面出错处理策略:出错时转向统一的出错页面,而不必在每个网页中写代码,控制转向出错页面,避免了程序运行期间任何未处理的意外发生时,错误页面代码泄露或使用户不知所云的尴尬发生。页面出错处理可以应用下列策略实现:  http://www.16sheji8.cn/
    (A)定制出错网页

这个设置可以保证当错误出现时,本地用户访问默认出错页,远程用户访问自定义的error.htm网页。
    (B)处理特别的HTTP请求
对于HTTP错误状态代码,例如:403禁止,404无法找到,500服务器错误等,可以自定义各自的出错处理页面。如下所示:

 

2.2.3 界面设计:代码分离和自定义控件
    (1)代码分离:将程序代码和HTML内容分离,不仅能增强页面的条理性、易读性和团队开发的容易程度,更重要提高网页安全性。如:
前台aspx网页:peixun_base_
xiangmu.aspx.aspx
<%@ Register TagPrefix= "iewc" Namespace="Microsoft.Web.UI.WebControls"
Assembly="microsoft.web.ui.webcontrols" %>
<%@ Page Language="vb" AutoEventWireup="false" Codebehind=
"peixun_base_xiangmu.aspx.vb"Inherits="pxb.MUTI"%>
而后台的peixun_base_xiangmu.aspx.vb文件,专门编写代码,实现代码和HTML内容分离。
(2)自定义控件:可以根据需要编写自定义控件,更好地提供可重用的封装逻辑,在使用自定义控件前,需要将定义它们的类文件编译成动态库,即:
vbc /t:library /r:system.dll /r:system.web.dll/out:pxbcontrols.dll control.vb
将编写好的类文件(.vb)编译成动态库(.dll),可以供以后多次使用,由于封装了逻辑,且生成库,所以安全性得到保障。
除上述外,必须要重视记录日志。日志文件分系统日志和用户自定义日志。系统日志,如建立数据库日志文件;自定义日志文件:可以利用global.asax文件的session_onStart()事件与session_onEnd()事件实现自定义日志文件维护,例如:记录访问用户的登录名,访问时间,IP地址等信息,在应用程序根目录的global.asax文件内添加如下代码:
<%@ Import Namespace= "System.IO"%>
Sub Session_onStart(Sender As Object, E As EventArgs)
'每一位客户登录时触发该事件
sw=New StreamWriter(server.mappath("log/log.txt"),True,Encoding.Default)
'将客户IP保存到Session中
Session("IP")= Request.ServerVariables("REMOTE_ADDR") sw.Writeline(Now() & "-用户" & Session("IP") & "进入")
sw.Close
End Sub
Sub Session_OnEnd(Sender As Object, E As EventArgs)
'当每一位客户超过会话时间没有和服务器交互,或关闭浏览器后触发该事件
sw=New StreamWriter(server.mappath("log/log.txt "),True,Encoding.Default)
sw.Writeline(Now() & "-用户" &Session("IP") & "退出")
sw.Close
End Sub
2.3 发布运行阶段:主要考虑如下方面 http://www.16sheji8.cn/
(1) 关闭调试模式;
(2) 备份转储数据库文件和日志文件;
(3) 密码要不断更新;
(4) 及时打补丁程序。

3总结

    综上所述,基于ASP.NET的Web网络应用程序开发,在充分利用ASP.NET的安全机制、数据库安全控制、管理员网络安全防范意识的基础上,可以极大提高Web应用程序的安全性能。

参考文献
[1] [美]Steven A.Smith等.用实例学ASP.NET.马燕,闫立军等,译.北京:电子工业出版社,2002.
[2] [美]Macro Bellinaso Kevin Hoffman.ASP.NET Web站点高级编程.康博,译.北京:清华大学出版社,2002. http://www.16sheji8.cn/
[3] [美]John Kauffman 等. ASP.NET数据库入门经典. 康博,译.北京:清华大学出版社,2002.
[4] 章立民. 用实例学 Crystal Report for Visual Studio.NET.北京:电子工业出版社,2004.

 

  全套毕业设计论文现成成品资料请咨询微信号:biyezuopin QQ:2922748026     返回首页 如转载请注明来源于www.biyezuopin.vip  

                 

打印本页 | 关闭窗口
 上一篇文章:SSL计算机毕业设计论文
本类最新文章
通用回归神经网络在声呐目标分类中 工艺规程制订与并行工程 储油罐的变位识别与罐容表标定
DVD租赁优化方案 车灯线光源的优化设计方案 基于时频分析与自适应滤波技术的多
| 关于我们 | 友情链接 | 毕业设计招聘 |

Email:biyeshejiba@163.com 微信号:biyezuopin QQ:2922748026  
本站毕业设计毕业论文资料均属原创者所有,仅供学习交流之用,请勿转载并做其他非法用途.如有侵犯您的版权有损您的利益,请联系我们会立即改正或删除有关内容!