基于MVC 的网络信息安全模型设计
- 格式:doc
- 大小:24.50 KB
- 文档页数:6
网络安全的攻防体系随着信息技术的飞速发展,网络安全问题日益凸显。
构建有效的攻防体系,是保障网络安全的重要手段。
本文将探讨网络安全的攻防体系,分析其重要性及构建方法。
网络安全的攻防体系是一种立体化的防御系统,旨在预防、检测和应对网络安全威胁。
它包括入侵检测、防火墙部署、访问控制、数据加密等多个环节,各个环节相互协作,共同维护网络安全。
预防攻击:通过采取有效的防御措施,如防火墙、入侵检测系统等,可以预防恶意攻击,保护网络资源。
及时响应:一旦发生攻击事件,攻防体系可以迅速作出反应,采取相应的措施,如隔离攻击源、报警等,有效减轻攻击带来的损失。
数据保护:通过加密、访问控制等手段,保护数据的安全性和完整性,防止数据泄露和篡改。
提高网络性能:合理的攻防体系可以优化网络结构,提高网络性能,保证业务的正常运行。
构建网络安全的攻防体系,需要考虑以下几个方面:制定全面的安全策略:结合网络结构和业务需求,制定全面的安全策略,包括访问控制、数据保护、应急响应等。
选用合适的防御设备:根据网络环境和安全需求,选择合适的防御设备,如防火墙、入侵检测系统、加密设备等。
定期安全评估:定期进行安全评估,发现潜在的安全隐患,及时采取措施予以解决。
人员培训:加强人员安全意识培训,提高员工对网络安全的重视程度,避免因操作不当导致的安全事件。
合作伙伴关系:与安全领域的合作伙伴建立良好的关系,共享安全信息和资源,共同应对网络安全威胁。
监控和日志管理:建立完善的监控和日志管理系统,实时监测网络状态和安全事件,为攻击溯源和事件处理提供依据。
持续更新和升级:网络安全攻防体系需要不断更新和升级,以应对不断变化的网络威胁和攻击手段。
应定期检查安全设备的补丁和更新情况,确保其与最新安全威胁保持同步。
应急响应计划:制定针对可能出现的网络安全事件的应急响应计划,明确应对步骤和责任人,确保在发生安全事件时能够迅速、有效地做出反应。
备份和恢复策略:实施备份和恢复策略,对重要数据和系统进行定期备份,确保在发生攻击或意外情况下能够迅速恢复数据和系统的正常运行。
《基于TCP-IP的请销假考勤管理系统设计与实现》篇一基于TCP-IP的请销假考勤管理系统设计与实现一、引言随着企业信息化进程的加速,传统的请销假考勤管理方式已经无法满足现代企业的需求。
为了提高管理效率,减少人为错误,基于TCP/IP的请销假考勤管理系统应运而生。
本文将详细介绍该系统的设计与实现过程,以期为相关领域的研究和应用提供参考。
二、系统设计1. 系统架构本系统采用C/S(客户端/服务器)架构,通过TCP/IP协议进行数据传输。
系统主要由考勤管理模块、请销假模块、数据传输模块和数据库模块组成。
其中,考勤管理模块负责员工考勤数据的采集和处理;请销假模块负责员工请销假申请的提交和审批;数据传输模块负责数据的发送和接收;数据库模块负责存储和管理数据。
2. 模块设计(1)考勤管理模块:该模块负责员工考勤数据的采集和处理。
通过与门禁系统、摄像头等设备连接,实时获取员工的出入记录,并自动生成考勤报表。
同时,员工可以通过该模块查看自己的考勤情况。
(2)请销假模块:该模块负责员工请销假申请的提交和审批。
员工可以通过该模块提交请销假申请,包括请假类型、时间、原因等信息。
管理员可以通过该模块对申请进行审批,并记录审批结果。
(3)数据传输模块:该模块负责数据的发送和接收。
通过TCP/IP协议,将考勤数据、请销假申请等信息传输至服务器,并保证数据传输的稳定性和安全性。
(4)数据库模块:该模块负责存储和管理数据。
采用关系型数据库管理系统,对员工信息、考勤数据、请销假申请等信息进行分类存储和管理,以便后续查询和分析。
三、系统实现1. 技术选型本系统采用Java语言进行开发,使用MVC(模型-视图-控制器)设计模式。
数据库采用关系型数据库管理系统,如MySQL 或Oracle等。
网络通信采用TCP/IP协议,使用Socket编程实现数据的发送和接收。
2. 具体实现(1)考勤管理模块实现:通过与门禁系统、摄像头等设备连接,实时获取员工的出入记录。
基于MVC的物资管理信息系统的设计与实现【摘要】MVC技术是实现基于B/S模型的管理信息系统开发的新技术,它采用M(Model)-V(View)-C(Controller)分层模型框架对系统进行设计、实现,使得整个系统的结构更加清晰,可维护性、扩展性更强。
它与技术的结合是目前基于WEB的应用程序开发的主流技术之一,具有重要的研究和推广价值。
本文以MVC技术为基础,结合技术,阐述了物资管理信息系统设计过程与技术实现。
【关键词】管理信息系统;MVC;;B/S模型;SQL Server数据库连接技术0 引言随着计算机网络技术的发展与应用领域的渗透,采用信息化管理技术已经成为了一个企业和部门提高工作效率,解决实际问题的必由之路。
本文正是从这一着眼点出发,立足实际应用中的需求设计并开发了基于MVC架构的信息管理系统。
系统的开发过程使用了MVC架构下的相关典型技术,诸如、SQL Server数据库访问技术、C#网络编程技术等等。
1 MVC模型及相关概念所谓MIS(管理信息系统——Management Information System),是一个由人、计算机及其他外围设备等组成的能进行信息的收集、传递、存贮、加工、维护和使用的系统。
现代化的企业需要计算机的帮助对内管理日常业务,对外开展电子商务;事业单位以及政府部门则需要利用计算机实现信息管理和事务处理的信息化,提高工作效率。
技术是一种用于创建WEB应用程序的编程模型。
运行时可以和.NET Framework类库集一起配合用于创建动态WEB页,在WEB服务器的环境中运行,页面的最后生成是由许多不同的指令和/或数据源构造的。
基于B/S模型的WEB应用程序结构可以概括为MVC结构,M(Model)即模型层/与数据库交互;V(View)即视图/与用户交互;C(Controller)控制/根据用户的请求与模型层交互,并返回结果视图给用户。
三种之间的关系可以用下图来表示[1]:图1 MVC结构示意图对MVC参考模型中的功能模块分别介绍如下[2]:1.1 视图:视图是用户看到并与之交互的界面。
基于 MVC3.0设计WEB信息管理系统身份验证与颗粒权限摘要:目前,基于网络应用的各种信息管理系统(management information system,简称mis)日益增加,但如何有效地防止非法用户进入系统或者多重身份的用户使用系统,从而提高系统的安全、可靠性、权限分级控制成为主要问题。
本文介绍了基于 mvc的网络应用管理系统中动态颗粒权限实现的可行性,同时还介绍了系统采用的目前较新面向切面编程(aop)技术来实现颗粒权限管理。
关键词:mis;系统安全;管理系统;可靠性; mvc;颗粒权限;aop中图分类号:tp311.52文献标识码:a文章编号:1007-9599 (2013) 05-0000-031引言随着计算机和网络技术的不断发展与普及,基于网络的应用信息管理系统得到了广泛的使用,各种的使用人员通过网络在自己的计算机终端上使用系统。
基于网络的各种信息管理系统的安全性成了计算机领域的一个研究重点。
在各种网络安全技术的保护下系统本身可以抵御来自外界的大多数威胁,但是这样无法做到自身系统用户的权限控制,所以需要使用权限管理来灵活的控制系统内部用户安全的使用系统中的各种功能,从而达到分权分级的控制。
2概念介绍 mvc简介[1] mvc是微软官方提供的开源mvc框架。
它是个将一个应用的实现分成n个组件角色的框架技术即:模型(model),视网(view)和控制器(controller)。
model是负责保持状态、数据的应用组件,通常这个状态都持久于数据库之中。
view是负责显示用户界面的组件(ui),通常这个ui是使用model 模型数据来创建的。
controller是处理用户交互,控制器行为(action)是用来完成用户发过来的每一个请求,操作model(模型)最终会选择用哪个view (视图)来显示ui的组件。
在mvc应用中,视图只是用来显示信息而已,控制器才是用来处理和回应用户的输入和交互的。
- 37 -信 息 技 术随着数字技术的发展,智能移动端普及率迅速增加。
移动端制造商与互联网服务商在移动商店应用方面不断推陈出新,这种全新的移动应用模式已成为互联网发展的新方向。
但随之而来的便是庞大繁杂的信息量,而传统校园信息管理系统仅能提供校内查询的功能已无法满足用户现实需求。
Android Studio 是基于Intellij Idea 的集成开发环境,除Intellij 自身具有的代码编辑器及开发工具之外,还提供了更多能够提升应用效率的模块,可有效丰富、完善校园信息管理系统功能[1]。
鉴于此,该文设计出一款基于Android Studio 的智慧校园信息管理系统,该系统能够解决部分管理与运行问题,编写程序时可同时预览外观效果,并能对不同文本信息进行有效分类,可满足广大师生及时获取教务、学院和就业信息等基本要求。
1 整体设计该设计的目的是解决系统功能少、不兼容移动端以及运行性能差等方面的问题。
该系统在传统系统的基础上结合校务管理与工作所需,面向广大在校师生,针对用户的出行与定位需求,创建导航、浏览等模块;针对用户的信息获取需求,创建成绩管理、院系概况和就业创业指导等模块,该部分需要用户通过开通权限方可使用,并且内容应进行动态调整[2]。
该文设计的基于Android Studio 的智慧校园信息管理系统严格遵循MVC (模型-视图-控制器)设计思想,将表现层、服务层和数据层进行分离(如图1所示)。
用户通过表示层界面输入及查询信息,通过Resin 提供的支持Jsp 的编程工具包向服务层控制器Jsp 发送交互请求,随后Jsp 再调用业务层相关方法对数据层进行增删修改操作,并将结果通过Jsp 返回客户端,由此完成操作。
2 硬件设计2.1 通信网络服务端与客户端共同组成系统的通信环境。
其中,服务端应用Jsp 内的Service 方法通过ServletRequest 对象得到请求参数,调用逻辑方法得到所需结果后再转化为序列对象。
《MVC架构下⽹站的设计与实现》论⽂笔记(⼗⼋)标题:MVC架构下⽹站的设计与实现⼀、基本信息时间:2017来源:⼴东海洋⼤学数学与计算机学院关键词:⽹站设计;MVC 框架;数据库;⽹络安全⼆、研究内容1、系统的整体架构设计(以⼴东海洋⼤学科技处⽹站为例)⼴东海洋⼤学科技处根据 MVC 三层架构的模式进⾏架构设计。
表⽰层,即⽤户浏览器前端,主要⽤途是将⽤户所需要的数据尽可能简洁美观地呈现出来。
业务逻辑层,主要是对⽤户的请求进⾏响应,并根据⽤户需求对数据库进⾏相应的增删改查操作,本⽹站的业务逻辑层主要提供了提供科技成果、科技动态、科技新闻、科研成果、组织机构、知识产权、学术活动和办事指南等类型⽂章的相关接⼝,以及其他附加相关业务接⼝。
数据持久层,即数据库,主要功能是将⽤户产⽣的⼤量数据进⾏有规律的存储,并提供⾼效的增删改查功能。
2、系统的整体模块设计3、系统数据库设计该系统使⽤ MySQL数据库来管理⽤户数据。
MySQL 是⼀种关系数据库管理系统,此数据库系统根据数据之间的关系,灵活的将不同的数据存放在不同的数据表格中,数据库创建的表有很多,主要学术年报表、通知表、校园⽂章表、其他⽂章表以及相关的政策法规、科研平台表等。
4、安全性问题1)XSS 安全性问题针对这类问题,本系统对所有的注⼊可能进⾏了严格的筛选和过滤,都⽤户的⼀性语句进⾏转义,及将将⽤户输⼊的代码进⾏转换成可执⾏代码进⾏存储,⽽在展⽰的将可执⾏代码转变成⽂本信息,从⽽起到保护隔离的作⽤,避免可执⾏代码直接暴露在页⾯,⼤⼤提⾼⽹页的安全性。
2)SQL 数据库安全性问题为了解决此类问题,本系统采⽤的处理⽅法有两种,⼀是使⽤参数化的 SQL 命令或者只是使⽤存储过程进⾏数据的查询与存取,舍弃动态拼装命令;⼆是对⽤户的查询输⼊进⾏校验和转换。
通过这两种⽅法可以在很⼤程度上解决数据库的注⼊性问题。
三、结论⼴东海洋⼤学⽹站是⼀个⾼效的⼯作⽹站,其设计 MVC 设计模式的开发,使得系统具有很好的维护效率和质量,为了加强⽹站的安全性能,尤其是针对数据安全,特别对 XSS和 SQL 注⼊问题作出了防范,确保了数据的安全。
Journal of Anshan Normal University 鞍山师范学院学报2021-04,23(2):57-60基于SSM技术的网络安全渗透测试系统的开发陈志伟(福建林业职业技术学院自动化工程系,福建南平353000)摘要使用集成框架技术提升Web系统的开发效率,成为更多软件开发设计人员的首选.当下,网络安全的重要性已渗透到社会生活的方方面面,而用于发现网站安全漏洞的渗透测试系统还不是很多.为此,本文以网络安全渗透测试系统的开发研究为目标,使用Spring、SpringMVC和MyBatis框架技术,对系统的层次及功能进行划分和说明,而后进行系统的设计实现,最后以该系统作为平台测试发现了某网站页面存在假冒登陆漏洞的事实,并给出了针对性的防范建议.关键词SSM框架技术;网络安全;渗透测试;漏洞中图分类号TP3文献标识码A文章编号1008-2441(2021)02-0057-04随着网络技术和信息安全技术的不断深度融合发展,每天有大量的数据信息往来于互联网,获取这些数据信息变得越来越便捷的同时,存在其中的某些敏感数据会因Web系统本身的漏洞或者弱点而被泄漏,这将给社会或公众带来潜在危害•由此,进行网络安全渗透测试系统的设计⑴,开发出具有高可靠性、低成本和长生命周期等优点的系统[2],以此为平台测试发现网站页面可能存在的安全漏洞,并给出应对措施.1系统介绍1.1J2EE和SSM框架J2EE是在SUN公司的引领和推动下,召集多家公司技术人员协同合作而制定出的一套企业级应用程序开发规范,该规范采用分层设计思想,为搭建具有高复用、高扩展、松耦合的应用系统提供了良好的技术支持.SSM作为经典的模型(M)—视图(V)—控制器(C)框架,将系统划分为持久化(Persistence)层、数据访问(DAO)层、业务(Service)层和Web表现层,如图1.1•2系统功能网络安全渗透测试系统设计按“区”划分,主要分为测试(题目)区、功能区和推荐区•从具体各区功能的实现角度出发,对测试区、功能区和推荐区设计作如下说明:1.2.1测试区提供进行安全渗透测试的平图1SSM框架划分系统层次台,用来发现可疑的网站页面弱点并给出应对措施.部署有脚本测试模块、注入测试模块、上传测试模块、综合测试模块等,是系统的核心功能所在•图2收稿日期2020-07-25作者简介陈志伟(1983-),男,福建福州人,福建林业职业技术学院自动化工程系讲师、工程师,主要从事网络信息安全方向.58鞍山师范学院学报第23卷是系统的核心一一测试(题目)区功能模块划分情况.1.2.2功能区负责对登录测试人员的记录.首先要确认测试人员的有效身份,通过登录拦截器类LoginInterceptor获取并判断Session中是否有此用户数据,对不符合条件的给出提示信息.1.2.3推荐区定期收集、整理当下网络安全、渗透测试新技术等,并及时发布公告.2系统设计2.1集成环境及支持系统配置:运行内存为4GB;固态硬盘为100GB;数据库服务器为Mysql-8.0.12-winx64;Web服务器为Apache-tomcat-8.0.53;JDK版本为Java(TM)SE Runtime Environment(build1.8.0_181-b13).2.2前后端分离设计本系统前端页面使用Bootstarp和jQuery框架完成页面图2测试区模块功能的展示,后端则通过J2EE和SSM框架整合来实现系统的前后端分离设计I3】.Spring框架为开发设计人员提供了注入和面向切面的支持.MyBatis框架通过XML或注解形式进行配置,在实体类和SQL语句间建立关联,以便实现数据的存储、查询、修改和删除等操作[4】.2.3持久化类设计数据持久化是将内存中的数据模型转换为存储模型以及将存储模型转换为内存中数据模型的统称⑸,该系统设计的持久化类包括:用户持久化类(User)和数据字典持久化类(BaseDict),如表1、表2所示.表1系统用户表字段名类型长度主键说明user_id int32是用户IDuser_code varchar32否用户账号user_name varchar50否用户名称user_psd varchar32否用户密码user_state varchar1否用户状态(1正常,0暂停)表2数据字典表字段名类型长度主键说明dict_id varchar32是数据字典IDdict_type_code varchar10否数据字典类别代码dict_type_name varchar50否数据字典类别名称dict_item_name varchar50否数据字典项目名称dict_item_code varchar10否数据字典项目代码dict_sort int10否排序字段dict_enable char1否是否可用dict memo varchar100否备注3系统实现从图2可以看出测试(题目)区为本系统的核心,下面主要介绍该区的实现:首先,创建持久化类,在edu.czw.core.po包中,创建登录用户和数据字典持久化类.其次,实现DAO层,创建用户DAO层接口和映射文件UserDao接口,接着创建一个与接口同名的映射文件;创建数据字典DAO层接口映射文件BasicDicDao,然后创建一个与接口同名的映射文件.再次,实现Service层,创建数据字典和用户的Service层接口,并创建这两个接口对应的实现类BaseDicServiceImpl和UserSer-viceImpl.最后,实现Controller层,在edu.czw.core.web.controller包中,创建用户控制器类UserCon-troller.其中,引入分页标签文件Page.java用于实现分页,部分代码如下:第2期陈志伟:基于SSM技术的网络安全渗透测试系统的开发59//计算总页数int pageCount=page.getTotal()/page.getSize();if(page.getTotal()%page.getSize()>0){pageCount++;writer.print("<nav><ul class=冶pagination冶>");String homeUrl=append(url,"page",1);String backUrl=append(url,"page",pageCount);//显示“上一页”按钮if(page.getPage()>1){String preUrl=append(url,"page",page.getPage()-1);preUrl=append(preUrl,"rows",page.getSize());writer.print("<li><a href=”"+homeUrl+"”>"+"首页</a></li>");writer.print("<li><a href二”"+preUrl+"”〉"+"上一页</a></li>");//显示“下一页”按钮if(page.getPage()<pageCount){String nextUrl=append(url,"page",page.getPage()+1);nextUrl=append(nextUrl,"rows",page.getSize());writer.print("<li><a href=”"+nextUrl+"”>"+"下一页</a></li>");writer.print("<li><a href二”"+backUrl+"”>"+"尾页</a></li>");writer.print("</nav>");}catch(IOException e){e.printStackTrace();4系统测试假冒(counterfeit),也称伪装、冒充,是一种欺骗或绕过系统登陆验证的手段•一旦系统被冒充者登陆,就会造成越权侵犯行为,给系统安全和数据信息安全造成威胁.4.1主要步骤分析网站页面查找可能的渗透点寅发现疑似假冒的弱点寅利用该弱点传递/修改参数寅获取Key 值证实漏洞存在寅给出应对措施•4.2漏洞分析进入页面http://ncd3.zugencd.eqo/dcugi_cd841f990g5c41762fhf82h4g760c7gd/kpfgz.php,发现Cookies中有一个键值是Login=0,怀疑是可以用于假冒渗透测试的弱点,传递或修改参数Login=1,由此思路编写脚本进行渗透:import requestsym='http://ncd3.zugencd.eqo/dcug1_cd841f990g5c41762fhf82h4g760c7gd/kpfgz.php'r=requests.post(ym,cookies={"Login":"1"})r.encoding='utf8'print(r.text)60鞍山师范学院学报第23卷运行上述脚本,得到Key值证实存在安全漏洞,如图3.Python3.8.3(tags/v3.8.3:6f8c832,May132020,22:37:027[MSC v.192464bit(AMD64)]on win32~*'or"liceiuseO"for more infoimation.Type f'help n,**€opyright n,^credits>»l==================RESTART:C:\Users\Paisley2014\Desktop\l.py--------------------------------<head><meta http-equiv=,'content-t>pe,'content=,'text/html;charset=utf-8M></head><body>key is:yescookieedit7823789KJ»>图3渗透得到Key4.3应对措施用户可通过IE浏览器“隐私”选项,将隐私设置为完全禁止以阻止Cookie记录信息,也可对网站设置禁止使用Cookies进行编辑,再有就是养成定期清除Cookies的习惯.5结语综上,使用框架技术在提升设计人员开发Web系统效率的同时,也有助于系统呈现更好的伸缩性、扩展性和可维护性[6】.本文运用SSM、Bootstarp、jQuery等技术,面向当前主流的Web渗透测试需要,设计实现了该渗透测试系统的主要功能.参考文献[1]黄洋.网络安全监管系统的研究与应用[J].计算机光盘软件与应用,2010(9):52-53.[2]曾冬梅.基于SSM的人事管理系统的设计与实现[J].信息与电脑(理论版),2019(17):84-85.[3]刘昊,李民.基于SSM框架的客户管理系统设计与实现[J].软件导刊,2017(7):87-89.[4]陈圣楠.基于SSM框架的信息系统全生命周期管理平台的设计与开发[J].信息技术与信息化,2019(6):79-81.[5]肖睿,肖静,董宁.SSM轻量级框架应用实战[M].北京:人民邮电出版社,2018.[6]郑逸凡.基于SSM框架的在线教学系统的设计[J].长沙大学学报,2019(2):41-44.Development of Network Security PenetrationTesting System Based on SSM TechnologyCHEN Zhiwei(Department of Automation Engineering,Fujian Forestry Vocational and technical college,Nanping Fujian353000,China) Abstract Using integrated framework technology can improve the development efficiency of web system, which has become the first choice of more and more software developers and designers.At present,the importance of network security has penetrated into all aspects of social life,and there are not many penetration testing systems used to detect website security vulnerabilities.Therefore,this paper takes the development and research of network security penetration testing system as the goal,uses Spring,Spring MVC and MyBatis framework technology to divide and explain the level and function of the system,and then designs and implements the system.Finally,the system is used as a platform to test the fact that a website page has a fake login vulnerability,and this paper gives some targeted preventive suggestions.Key words SSM framework technology;Network security;Penetration testing;Vulnerability(责任编辑:张冬冬)。
基于MVC 的网络信息安全模型设计作者:赵健来源:《电脑知识与技术》2013年第34期摘要:文章结合目前网络安全中存在的问题,基于MVC模式,引入机器学习的概念,设计实现一个能够根据以往数据自动判断并不断学习的模型,不仅大大减轻了网管的工作量,而且也能够提高Web应用程序的反应速度和判断准确率。
关键词:机器学习;CRM114;MVC;信息安全;UML中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)34-7720-05在当今网络化的世界中,计算机信息和资源很容易遭到各方面的攻击。
一方面,来源于Internet,Internet给企业网带来成熟的应用技术的同时,也把固有的安全问题带给了企业网;另一方面,来源于企业内部,因为是企业内部的网络,主要针对企业内部的人员和企业内部的信息资源,因此,企业网同时又面临自身所特有的安全问题。
网络的开放性和共享性在方便了人们使用的同时,也使得网络很容易遭受到攻击,而攻击的后果是严重的,诸如数据被人窃取、服务器拒绝服务等等。
随着信息技术的高速发展,网络安全技术也越来越受到重视,由此推动了防火墙、人侵检测、虚拟专用网、访问控制等各种网络安全技术的蓬勃发展。
1 主流网络攻击方式在众多网络攻击中,结构化查询语言注入攻击和跨站代码攻击最为常见,攻击的目标主要分为两类:1)以盗取服务器资源为目的的恶意攻击,此类攻击以SQL注入攻击居多;2)以危害其他访问该服务器用户为目的的恶意攻击,此类攻击以跨站代码攻击居多。
1.1 SQL注入攻击原理常见的网站往往由应用程序服务器和后端数据库组成。
应用程序服务器主要负责对用户的请求进行相应,如果需要使用数据库资源,则请求后端数据库相应的字段,而当前大多数的关系型数据库都采用了结构化查询语言(SQL)作为命令输入,所以欺骗应用程序服务器使其生成错误的SQL代码成了非常主流的手段。
例如,在网站的登录验证页面中,一般会有两个常见的表单项:用户名和密码,在一个对SQL注入攻击完全没有防范的网站中,它大多会使用字符串连接的方式组成数据库查询命令,如下:“SELECT * FROM [user_table] WHERE [uname]=‟”&request(“uname”)&”‟”,如果用户输入的值是正常值,数据库返回的值确实就是逻辑正确的值,但是当恶意用户输入某一特殊字符如‟ OR 1=1—这样的值时,应用程序服务器如果还是按照之前那边简单连接字符串的方法处理的话就会出现问题:SELECT * FROM [user_table] WHERE [uname]=‟‟ OR 1=1这种SQL表达式返回的一定永远是真值,而返回真值意味着用户已经通过了服务器检查,被赋予了权限,而这样就造成了信息的泄露,同样的,使用这样的SQL注入攻击还可以破坏数据库原有的结构,删除或更新某张表,或者在数据库中加入最高权限的用户等等。
1.2 跨站代码攻击原理跨站代码攻击的原理与SQL注入攻击类似,而有所不同的就是SQL利用的是应用程序服务器生成结构化查询语言时缺乏检查的漏洞,而跨站代码攻击用的则是浏览器本身的标记语言,通过比如浏览或者其他输入形式加入网站中,此后,所有浏览到此网页的用户都将执行这段代码。
这种攻击的目标不是提供网络应用服务的服务器,其实是正在浏览该网站的其他用户。
当用户正在访问含有攻击信息的网页时,它会触发并执行某些Java脚本、VB脚本或者其他如ASP、PHP等动态语言,甚至是某些框架自己定义的语言,但所有这些语言都不是原始网站所提供的。
之后的执行有可能是链接到另外一个网站被下载木马,而此攻击的严重程度取决于被下载的恶意程序。
2 MVC模型简介MVC 模式主要由3 个部分组成:模型(Model)、视图(View)和控制器(Controller),在各个对象之间取得高层接口,使应用程序的输入、处理和输出分开,同时在程序与程序之间进行重用。
2.1 模型(Model)程序执行的关键部分。
所有的操作都是在这一部分实现的,提供应用业务逻辑类。
它若需要取得视图中的对象或更新视图时,需要通过控制器来进行处理。
模型表示业务逻辑和业务规则等,在MVC 的3 个部件中,拥有最多的处理任务。
它可以用JavaBean 和EJB 等组件技术来处理数据库的访问。
模型能为多个视图提供数据。
2.2 视图(View)视图是模型在屏幕上的显示(HTML 页面、JSP 页面、SwingGUI),是用户接口。
视图可以通过模型访问数据,并根据客户端的要求来显示数据。
视图必须保证当模型改变的时候,数据显示也必须同时改变。
在本系统中,是用对应各个功能模块的JSP(Declare JSPs,Proposer JSPs,Unit JSPs 等)和对应这些JSP 网页进行组织的模版JSP 来实现的。
这些JSP 经过组合展示给用户程序的输入输出网页。
2.3 控制器(Controller)控制器处理用户与应用系统的交互操作,其职责是控制提供模型中任何变化的传播,确保用户界面与模型间的对应联系,它接受用户的输入,将输入反馈给模型,进而实现对模型的计算控制,是模型和视图协调工作的部件。
3 机器学习简介及CRM114模型机器学习是关于理解与研究学习的内在机制、建立能够通过学习自动提高自身水平的计算机程序的理论方法的学科。
如图1,展示了机器学习的基本结构。
机器学习模型必须从已知的规则库中进行学习,这些规则库也就是外界环境,机器学习模型利用这些信息修改知识库,以增进系统执行部分完成任务的效能,而模型的执行部分则根据已有的知识库进行判断从而完成任务。
同时,完成了执行流程之后,模型会将执行的结果反馈给学习部分,也就是对自己的执行结果进行再次学习,这样增大了模型的知识库,使得其之后判定更加准确。
在具体的应用中,环境,知识库和执行部分决定了具体的工作内容,学习部分所需要解决的问题完全由上述3部分确定。
CRM114是一个开源的机器学习模型,它本身的设计目的是为了对电子邮件系统中的垃圾邮件进行自动学习并分类,其功能非常强大,并可以使用多种分类器,比如正则表达式、隐Markov模型、贝叶斯模型、正交稀疏偶图(Orthogonal Sparse Bigrams)等,另外他也具有非常好的执行效率和跨平台特性,它可以运行在Linux,OS X,Windows下,是一个理想的进行Web分类实验的辅助工具。
CRM114工作时主要考虑句中的每一个字,比如For example, this sentence has seven words这句话中…For‟ …example‟ …this‟ …sentence‟ …has‟ …seven‟ …words‟就是需要被考虑的单独元素。
在把一个请求的一句话打散成一个个单词后,CRM114提供了两个不同的方法,LEARN 和CLASSIFY,进行学习或分类。
4 安全模型功能模块设计该模型主要包括如下模块功能,如图2所示:4.1 语法分析模块在交给CRM114学习或者分类操作之前,必须先将杂乱的Apache日志根据预设的错误号进行分类以及筛选,去除不需要的数据,如此日志条目中:spider05.yandex.ru - -[31/Dec/2009:06:25:19 +0100] "GET /icoa/batchman/index.html HTTP/1.1" 200 1498 "-" "Yandex/1.01.001 (compatible; Win16; I)"200 是分类判断依据,/icoa/batchman/index.html 是请求的主体,在分析字符串得到/icoa/batchman/index.html这一串请求值后,需要对其进行符号的处理,最终得到:Icoa batchman index html这一串数据交给后方的分类或学习模块进行处理。
模块设计如表1所示。
4.2 学习模块学习模块是此程序最为重要的模块之一,此模块的输入即语法分析模块的输入,是一个个字符串的集合,本程序中学习模块收到的应该为两个字符串集合,一个是正常请求的字符串集合,一个是非法请求的字符串集合,在此学习模块要对这两个集合进行分别学习,并将结果存入两个不同的数据库之中。
另外,由于CRM114模型存在着不同的学习策略,所以在学习开始前必须先读取配置文件的学习策略信息,尔后采取不同的学习策略进行学习。
模块用例如表2所示。
4.3 分类模块分类模块是本程序中最重要也是使用最为频繁的一个模块,不仅在执行分类任务时需要,在部分学习时也可能需要先进行分类操作,其运行必须在语法分析结束之后,得到分析结束的两个字符串集合后,分别将其送入CRM114模型经行验证。
每一个语句进行验证后,CRM114模型会返回形如如下的结果:CLASSIFY succeeds; success probability: 1.0000 pR:306.6527Best match to file #0 (/home/xp/workspace/css/good.css) prob: 0.9852 pR: 1.8238 Total features in input file: 48#0 (/home/xp/workspace/css/good.css): features: 31827951,hits: 5027026, prob: 9.85e-01, pR: 1.82 #1 (/home/xp/workspace/css/bad.css):features: 93119, hits: 80000, prob: 1.48e-02, pR: -1.82,对于程序后续功能(计算AUC和画ROC Curve)来说只需要其中三个参数,即匹配到的数据文件、对于这个文件的确定度及其pR值,取得这三个值后分别存储,对于被归类到bad.css的确定度v需要进行一些处理,即v=1-v,因为在画Roc Curve时需要统一的度量,所以这次全部采用good.css作为度量的依据。
模块用例如表3所示。
模块交互过程如图5所示。
4.4 ROC Curve 模块此模块主要是为了分析分类器的分类结果,从而找出最合适的区分攻击和正常请求的临界值,从而为更加准确得进行分类提供了依据。
Roc Curve全称接收者操作特征(receiver operating characteristic),来源于信号检测理论,是一种对于灵敏度进行描述的功能图像,ROC曲线可以通过描述真阳性率(TPR)和假阳性率(FPR)来实现.由于是通过比较两个操作特征(TPR和FPR)作为标准,ROC曲线也叫做相关操作特征曲线。