论文部分内容阅读
【摘 要】提出了一种办公自动化管理系统的安全性设计方法,采用了分层结构的设计理念,从数据封装、日志记录、数据加密等方面加强了安全性设计。
【Abstract】In this paper, a security design for office automation management system is proposed. The design is hierarchical and will reinforce the security of the system from data encapsulation, log record and data encryption.
【关键词】自动化;管理系统;安全性
【Keywords】automation ;management system; security design
【中图分类号】G25 【文献标志码】A 【文章编号】1673-1069(2017)06-0156-02
1 引言
随着Internet的发展,很多企业都用办公自动化网站逐步取代C/S模式的OA软件。办公自动化网站通过收集员工个人信息,发布工作项目和进展,报表自动生成和导出,工作统计和分析等功能,辅助管理者实现企业内部的办公自动化管理工作。但是这些系统也随时可能面临来自网络的攻击。
WEB攻击有很多种,一部分可以使用ASP.NET代码进行防范的,但是其他的攻击方式还是可以产生破坏的,如直接攻击服务器。
办公自动化网站必须能够具有极强的安全性,保证企业内部工作的高效和有序。本文以基于ASP.NET的办公自动化管理系统为例,较为详细地介绍了网页的安全性设计方法,主要包括:①数据封装:采用分层结构设计网页,将数据封装在层次内,保证敏感数据不被恶意程序捕获;②密码加密:对用户密码进行加密处理后再存入数据库,保证数据安全,防止意外获取管理员权限的用户直接窃取用户密码,减小密码泄露几率;③日志记录:在程序中的重要执行位置记录日志,细化网页部署后的需记录信息,便于网页的维护。
2 ASP.NET特点
当前很多管理系统是基于ASP和脚本语言,将动态网页和数据库结合。但是由于ASP本身的局限性使得系统有一些不可克服的缺陷,而采取了ASP.NET技术的系统性能上有了很大的改善,其主要表现在以下几方面[1]: ①ASP.NET页面只需要一次编译后不需要重新编译,直到该页面被修改或Web应用程序重新启动。这使得在多次访问时速度有了极大的提升。②ASP.NET通过ADO.NET[2]提供的DataGrid等数据库元件可以直接和数据库联系。③ASP.NET支持应用程序的实时更新。管理员不必关掉网络服务器或者甚至不用停止应用程序的运行就可以更新应用文件。应用程序文件永远不会被加锁,因此甚至在程序运行时文件就可以被覆盖。当文件更新后,系统会温和地转换到新的版本。④ASP.NET采取"code-behind"方式编写代码使得代码更易于编写,结构更清晰,降低了系统的开发与维护的复杂度和费用。
3 系统概述
3.1功能结构
该办公自动化管理系统数据库采用Microsoft SQL Server 2005[3]。图1给出系统的功能结构图。其工作流程为:通过登录判断用户的权限、所在组等信息,支持用户进行录入、修改、删除和查询工作,并将工作以Excel文件的形式导出。本系统还提供了对工作数据进行统计分析的功能,可将工作占用时间直观的画成饼图展示给用户或管理者。通过功能结构图可以看出,本系统的功能都是基于有效用户登录的,因此必须对登录用户进行身份验证,防止黑客侵入。同时必须假想用户都是恶意的,对用户的所有输入进行判断,提升软件安全性。
3.2 系统安全性要求
考虑到本系统的应用,网页应该考虑如下安全性要求:①拒绝非法用户登陆;②对用户的密码进行妥善保护;③对用户非法输入进行辨析和提示;④软件结构清晰,不易被恶意代码攻击;⑤具有系统日志功能,方便维护。
4 系统安全性设计
4.1分层设计
为了使程序结构清晰,便于添加功能、修改和维护,系统采用了分层结构的设计理念。所谓分层结构是指按照实现的不同功能将系统的代码文件分层,实现相同或相近功能的代码位于同一层。如果需要对某些特定功能修改,只需在响应的层次内进行修改即可,使用分层结构编写代码使系统的功能结构更加清晰,同时将数据封装在本层内,不易被恶意代码攻击[4]。
本办公自动化管理系统的主要实现分为四层,分别为数据访问层、数据接口层、业务逻辑层和界面显示层。
其中数据访问层完成了所有与数据库交互的工作;数据接口层则实现对数据访问层的辅助功能和包装,例如构造SQL语句;业务逻辑层整个系统的核心,是系统中各种对象的类的具体实现,实现了管理系统的逻辑功能;界面显示层位于系统的最上层,实现了系统各页面的显示。各层次之间相互独立,只提供数据访问接口,保证了数据的安全性。
在编写代码时,按照先底层后上层的原则,首先实现数据访问功能,然后编写逻辑实现需要的各类,最后编写頁面显示层。
4.2 数据加密设计
当前,由于网络上部分的密码以明文方式显示,导致大量网民受到隐私泄露的威胁。由于没有进行密码加密设计,可以导致众多用户信息泄露,带来极为恶劣的影响。
本系统采用XOR方式对数据进行加密,其原理为:当一个二进制数A和另一个二进制数B进行异或运算会生成另一个二进制数C,如果再将C和B进行异或运算,则C又会还原成A。因此只需要确定一串密钥B,即可将数据A转化为加密后的结果C,并将C存入数据库中。如果需要解密数据,只需要将C再与密钥B进行异或运算即可。这里给出加密方法的示例代码。 Public static string Encrypt(string strSrc, str strKey)
{
Byte[] bSrc = (new UnicodeEncoding()).GetBytes(strSrc);
Byte[] bKey = (new UnicodeEncoding()).GetBytes(strKey);
For (int i=0; i {
For (int j=0; j {
bSrc[i] = Convert.ToByte(bSrc[i]^bKey[j]);
{
}
Return (new UnicodeEncoding()).GetString(bSrc).TrimEnd(‘\0’);
}
之所以需要利用字符串的低位字節进行异或操作,这是因为Unicode编码的非中文字符(数字或字母)的高位字节为0,而某些中文字符与0异或运算后,可能产生SQL Server不能存储的乱码字符串,造成存储失败。
解密方法是加密方法的逆操作,只需要重新利用加密后和原来的密钥执行相同的疑惑操作即可,因此解密方法直接调用加密方法即可。
4.3 日志设计
成熟网页的一个重要标志就是具备优良的日志记录功能。出于安全性和实时性的要求,部署好的网站通常是不允许进行实时调试的,因此需要将网页实时运行中的重要信息记录下来,作为网页维护的重要依据。本系统采用了Log4Net控件,该控件可以按照不同等级将重要信息记录,而且具有调用简便的特点。利用这一控件,可以很好的实现网页运行日志的记录功能。
5 结论
基于ASP.NET的办公自动化管理系统对安全性要求较高,本文从数据封装、数据加密、日志记录等方面叙述了该系统的安全性设计,通过对网站进行分层设计,记录系统运行日志和加密重要数据等手段,可以较大的提升系统的安全性,并为其他基于ASP.NET的网页程序提供了增强安全性的经验。
【参考文献】
【1】Scott Worley. ASP.NET技术内幕[M].王文龙, 刘湘宁,译.人民邮电出版社,2002.
【2】Sanjeev Rohilla, Senthil Nathan, Surbhi Malhotra. ADO.NET专业项目实例开发[M].陈君, 王宝良,译.中国水利水电出版社,2003.
【3】刘乃丽.精通ASP.NET2.0+SQL Server 2005项目开发[M].人民邮电出版社,2007.
【4】德瑞工作室.黑客入侵网络攻防修炼[M]. 电子工业出版社,2008.
【Abstract】In this paper, a security design for office automation management system is proposed. The design is hierarchical and will reinforce the security of the system from data encapsulation, log record and data encryption.
【关键词】自动化;管理系统;安全性
【Keywords】automation ;management system; security design
【中图分类号】G25 【文献标志码】A 【文章编号】1673-1069(2017)06-0156-02
1 引言
随着Internet的发展,很多企业都用办公自动化网站逐步取代C/S模式的OA软件。办公自动化网站通过收集员工个人信息,发布工作项目和进展,报表自动生成和导出,工作统计和分析等功能,辅助管理者实现企业内部的办公自动化管理工作。但是这些系统也随时可能面临来自网络的攻击。
WEB攻击有很多种,一部分可以使用ASP.NET代码进行防范的,但是其他的攻击方式还是可以产生破坏的,如直接攻击服务器。
办公自动化网站必须能够具有极强的安全性,保证企业内部工作的高效和有序。本文以基于ASP.NET的办公自动化管理系统为例,较为详细地介绍了网页的安全性设计方法,主要包括:①数据封装:采用分层结构设计网页,将数据封装在层次内,保证敏感数据不被恶意程序捕获;②密码加密:对用户密码进行加密处理后再存入数据库,保证数据安全,防止意外获取管理员权限的用户直接窃取用户密码,减小密码泄露几率;③日志记录:在程序中的重要执行位置记录日志,细化网页部署后的需记录信息,便于网页的维护。
2 ASP.NET特点
当前很多管理系统是基于ASP和脚本语言,将动态网页和数据库结合。但是由于ASP本身的局限性使得系统有一些不可克服的缺陷,而采取了ASP.NET技术的系统性能上有了很大的改善,其主要表现在以下几方面[1]: ①ASP.NET页面只需要一次编译后不需要重新编译,直到该页面被修改或Web应用程序重新启动。这使得在多次访问时速度有了极大的提升。②ASP.NET通过ADO.NET[2]提供的DataGrid等数据库元件可以直接和数据库联系。③ASP.NET支持应用程序的实时更新。管理员不必关掉网络服务器或者甚至不用停止应用程序的运行就可以更新应用文件。应用程序文件永远不会被加锁,因此甚至在程序运行时文件就可以被覆盖。当文件更新后,系统会温和地转换到新的版本。④ASP.NET采取"code-behind"方式编写代码使得代码更易于编写,结构更清晰,降低了系统的开发与维护的复杂度和费用。
3 系统概述
3.1功能结构
该办公自动化管理系统数据库采用Microsoft SQL Server 2005[3]。图1给出系统的功能结构图。其工作流程为:通过登录判断用户的权限、所在组等信息,支持用户进行录入、修改、删除和查询工作,并将工作以Excel文件的形式导出。本系统还提供了对工作数据进行统计分析的功能,可将工作占用时间直观的画成饼图展示给用户或管理者。通过功能结构图可以看出,本系统的功能都是基于有效用户登录的,因此必须对登录用户进行身份验证,防止黑客侵入。同时必须假想用户都是恶意的,对用户的所有输入进行判断,提升软件安全性。
3.2 系统安全性要求
考虑到本系统的应用,网页应该考虑如下安全性要求:①拒绝非法用户登陆;②对用户的密码进行妥善保护;③对用户非法输入进行辨析和提示;④软件结构清晰,不易被恶意代码攻击;⑤具有系统日志功能,方便维护。
4 系统安全性设计
4.1分层设计
为了使程序结构清晰,便于添加功能、修改和维护,系统采用了分层结构的设计理念。所谓分层结构是指按照实现的不同功能将系统的代码文件分层,实现相同或相近功能的代码位于同一层。如果需要对某些特定功能修改,只需在响应的层次内进行修改即可,使用分层结构编写代码使系统的功能结构更加清晰,同时将数据封装在本层内,不易被恶意代码攻击[4]。
本办公自动化管理系统的主要实现分为四层,分别为数据访问层、数据接口层、业务逻辑层和界面显示层。
其中数据访问层完成了所有与数据库交互的工作;数据接口层则实现对数据访问层的辅助功能和包装,例如构造SQL语句;业务逻辑层整个系统的核心,是系统中各种对象的类的具体实现,实现了管理系统的逻辑功能;界面显示层位于系统的最上层,实现了系统各页面的显示。各层次之间相互独立,只提供数据访问接口,保证了数据的安全性。
在编写代码时,按照先底层后上层的原则,首先实现数据访问功能,然后编写逻辑实现需要的各类,最后编写頁面显示层。
4.2 数据加密设计
当前,由于网络上部分的密码以明文方式显示,导致大量网民受到隐私泄露的威胁。由于没有进行密码加密设计,可以导致众多用户信息泄露,带来极为恶劣的影响。
本系统采用XOR方式对数据进行加密,其原理为:当一个二进制数A和另一个二进制数B进行异或运算会生成另一个二进制数C,如果再将C和B进行异或运算,则C又会还原成A。因此只需要确定一串密钥B,即可将数据A转化为加密后的结果C,并将C存入数据库中。如果需要解密数据,只需要将C再与密钥B进行异或运算即可。这里给出加密方法的示例代码。 Public static string Encrypt(string strSrc, str strKey)
{
Byte[] bSrc = (new UnicodeEncoding()).GetBytes(strSrc);
Byte[] bKey = (new UnicodeEncoding()).GetBytes(strKey);
For (int i=0; i
For (int j=0; j
bSrc[i] = Convert.ToByte(bSrc[i]^bKey[j]);
{
}
Return (new UnicodeEncoding()).GetString(bSrc).TrimEnd(‘\0’);
}
之所以需要利用字符串的低位字節进行异或操作,这是因为Unicode编码的非中文字符(数字或字母)的高位字节为0,而某些中文字符与0异或运算后,可能产生SQL Server不能存储的乱码字符串,造成存储失败。
解密方法是加密方法的逆操作,只需要重新利用加密后和原来的密钥执行相同的疑惑操作即可,因此解密方法直接调用加密方法即可。
4.3 日志设计
成熟网页的一个重要标志就是具备优良的日志记录功能。出于安全性和实时性的要求,部署好的网站通常是不允许进行实时调试的,因此需要将网页实时运行中的重要信息记录下来,作为网页维护的重要依据。本系统采用了Log4Net控件,该控件可以按照不同等级将重要信息记录,而且具有调用简便的特点。利用这一控件,可以很好的实现网页运行日志的记录功能。
5 结论
基于ASP.NET的办公自动化管理系统对安全性要求较高,本文从数据封装、数据加密、日志记录等方面叙述了该系统的安全性设计,通过对网站进行分层设计,记录系统运行日志和加密重要数据等手段,可以较大的提升系统的安全性,并为其他基于ASP.NET的网页程序提供了增强安全性的经验。
【参考文献】
【1】Scott Worley. ASP.NET技术内幕[M].王文龙, 刘湘宁,译.人民邮电出版社,2002.
【2】Sanjeev Rohilla, Senthil Nathan, Surbhi Malhotra. ADO.NET专业项目实例开发[M].陈君, 王宝良,译.中国水利水电出版社,2003.
【3】刘乃丽.精通ASP.NET2.0+SQL Server 2005项目开发[M].人民邮电出版社,2007.
【4】德瑞工作室.黑客入侵网络攻防修炼[M]. 电子工业出版社,2008.