什么是业务逻辑?
什么是正则表达式?
以上为提问
第5章 应用安全
5.1 应用安全概述
搭建方式的变化;早期的应用系统采用的客户/服务器模式是一种双层的结构,通常是将一台个人计算机做客户机使用,另外一台服务器用于存放后台的数据库系统,应用程序可以和客户端直接相连,中间没有其他的逻辑。程序的衣物逻辑储存在前台的应用程序中。
缺点;
- 定制程序无通用性,修改工作量极大
- 结构消耗客户机大量资源,对客户机负担大。
应用系统的新结构是一种三层客户/服务器结构,该结构构建了一种分隔式的应用程序。有三个层次共同组成应用系统。
攻击者主要攻击方面:利用Web应用系统、中间件或者数据库的漏洞进行攻击,得到Web应用服务器或者数据库服务器的控制权限。
5.2 常见的Web应用安全漏洞
5.2.1 SQL注入漏洞
SQL注入漏洞是Web层面最高危的漏洞之一。
SQL注入漏洞的形成原因:用户输入的数据被SQL解释器执行。
针对该漏洞的几种主要防护手段:
1、参数类型检测:主要面向纯字符型的参数查询。
实现方式:
- int intval
- bool is-numeric;
- ctypedigit。
2、参数长度检测
注意:如果某处提交的内容都在一定的长度以内,那么严格控制这些提交点的字符长度,大部分注入语句就没办法取得成功。
3、危险参数过滤
常见危险参数过滤包括关键字,内置函数,敏感字符过滤,方法三种;
1)黑名单过滤:将一些可能用于注入的敏感字符写入黑名单中。
2)白名单过滤:指接收已记录在案的良好输入操作。
3)GPC过滤:对变量默认进行addslashes。
4)参数化查询:指数据库服务器在数据库完成SQL指令的编译后,才套用参数运行,因此就算参数中含有有损的指令,也不会被数据库运行,仅认为它是一个参数。
5.2.2 文件上传漏洞
造成恶意文件上传的主要原因:
1、文件上传时检查不严。
2、文件上传后修改文件名时处理不当。
3、使用第三方插件时引入。
文件上传漏洞的常见防护手段:
1、系统开发阶段的防御。
2、系统运行阶段的防御。
3、安全设备的防御。
5.2.3 XSS
1.XSS的定义
跨站脚本攻击:指攻击者利用网站程序对用户输入过滤的不足,输入可以显示在页面上对其他用户造成影响的HTML代码,从而盗取用户资料、利用用户身份进行某种动作或者对访问者进行病毒侵害的一种攻击方式。
2.XSS漏洞攻击实例
3.XSS的分类如下:
1、反射型XSS:将用户输入的数据直接或未经过完善的安全过滤就在浏览器中进行输出,导致输出的数据中存在可被浏览器执行的代码数据。
2、存储型XSS:Web应用程序会将用户输入的数据信息保存在服务器端的数据库或其他文件形式中。
3、基于DOM的XSS:通过修改页面DOM节点数据信息而形成的XSS。
4.XSS漏洞的常见防护手段:
1、过滤特殊字符:过滤客户端提交的有害信息,从而防范XSS攻击。
2、使用实体化编码:在输出内容之前,如果能够对特殊字符进行编码和转义,让浏览器能区分这些字符是被用作文字显示而不是代码执行,就会导致攻击者没有办法让代码被浏览器执行。
5.2.4 CSRF
CSRF:跨站请求伪造。
1.CSRF的原理
1.登录受信任网站A,并在本地生成Cookie
2.在不登出A的情况下,访问危险网站B
2.CSRF的三种不同危害方式:
1、论坛等可交互的地方。
2、Web攻击者。
3、网络攻击者。
3.CSRF漏洞的常见防护手段:
1、添加验证码
2、验证referer
3、利用token
5.2.5 远程代码执行漏洞
1.远程代码执行漏洞:指攻击者可以随意执行系统命令,它属于高危漏洞之一,也属于代码执行的范畴。
2.远程代码执行漏洞的防范:
1、禁用高危系统函数
2、严格过滤关键字符
3、严格限制允许的参数类型
5.3 恶意代码
5.3.1 恶意代码的定义
恶意代码(恶意软件):能够在计算机系统中进行非授权操作的代码。
5.3.2 恶意代码的特点
恶意代码的编写是攻击者通过危害他人而达到破坏获取利益的目的。
特点:
- 具有恶意破坏的目的、
- 其本身为程序、
- 通过执行发生作用。
5.3.3 恶意代码的分类
分类恶意代码的标准:代码的独立性和自我复制性。
独立的恶意代码:具备一个完整程序所应该具有的全部功能,能够独立传播、运行的恶意代码,这样的恶意代码不需要寄宿在另一个程序中。
非独立的恶意代码:只是一段代码,必须嵌入某个完整的程序中,作为该程序的一个组成部分进行传播和运行。
5.3.4 恶意代码的危害
- 破坏数据
- 占用磁盘存储空间
- 抢占系统资源
- 影响计算机运行速度
5.3.5 典型恶意代码原理与防范分析
1.WebShell介绍
Webshell文件通常是可执行的脚本文件,与操作系统中的木马类似,可以理解为是一种web脚本形式编写的木马后门,一般用于远程控制Web服务器。
2.Webshell危害
入侵Web服务器后,将脚本木马后门文件放置在服务器的Web目录中,然后控制服务器
3.一句话Webshell案例
“一句话”:通过向服务端提交一句简短的代码来达到向服务器插入Web脚本形式的木马并最终获得Webshell的方法。
4.防范方法如下:
1、服务器安全设置:
1)加强对脚本文件的代码审计,对出现FSO、Shell对象等操作的页面进行重点分析。
2)Web服务器通过正则表达式、限制用户输入信息长度等方法对用户提交信息的合法性进行必要的验证、过滤,可以有效防范SQL注入攻击和跨站脚本攻击;尽量使用参数化的SQL查询代替动态拼接的SQL注入语句。
3)数据库是Web应用系统的重要组成部分,使用数据库系统自身的安全性设置访问数据库权限。
2、应用安全防护:
1)Web软件开发的安全
2)FTP文件上载安全
3)文件系统的存储权限
4)不要使用超级用户运行Web服务
3、控制文件上传:
1)加强对脚本文件的代码审计,对出现FSO、Shell对象等的操作页面进行重点分析。
2)将应用系统的重要文件放在不同的文件夹中,通过设置虚拟目录访问这些文件夹,尤其是上传文件,并合理设置这些文件夹的访问权限,以保证Web应用系统的安全。
5.4 中间件安全
5.4.1 中间件概述
流行的定义:中间件是一种独立的系统软件或服务程序,分布式应用程序借助这种软件在不同的技术之间共享资源。
中间件不仅仅实现互连,还能实现应用之间的互操作。中间件是基于分布式处理的软件,定义中特别强调了其网络通信功能。
5.4.2 中间件的分类
分类:应用服务类中间件、应用集成类中间件、业务架构类中间件。
- 应用服务类中间件:为应用系统提供一个综合的计算环境和支撑平台,包括对象请求代理中间件、事务监控交易中间件、Java应用服务器中间件等。
- 应用集成类中间件:提供各种不同网络应用系统之间的消息通信、服务集成和数据集成的功能,包括常见的消息中间件、企业集成EAI、企业服务总线以及相配套的适配器等。
- 业务架构类中间件:包括业务流程、业务管理和业务交互等几个业务领域的中间件。
5.4.3 典型中间件安全案例
漏洞产生原因:
1)在Java编写的Web应用与Web服务器间,Java通常会发送大量的序列化对象。
2)HTTP请求中的参数、cookies以及Parameters。
3)RMI协议,被广泛使用的RMI协议完全基于序列化。
4)JMX用于处理序列化对象。
5)自定义协议,用来接收与发送原始的Java对象。
6)在序列化过程中使用ObjectOutputStream类的writeObject()方法。
5.5 数据库安全
5.5.1 数据库概述
数据库:存储数据的“仓库”,是长期存放在计算机内、有组织、可共享的大量数据的集合。
数据库中的数据按照一定数据模型进行组织、描述和存储,具有较小的冗余度,较高的独立性和易扩展性,并为各种用户共享。
5.5.2 数据库标准语言SQL【结构化查询语言】
SQL:用于对存放在计算机数据库中的数据进行组织、管理和检索的一种工具。
5.5.3 数据库安全案例
对于数据库的防护方法如下:
1)加强像SA这样的账号的密码
2)对扩展存储过程进行处理
3)执行use master spdropextendedproc 'xpcmdshell'去掉Guest账号,阻止非授权用户访问。
4)加强对数据库登录的日志记录,最好记录所有登录事件。
5)用管理员账号定期检查所有账号,看密码是否为空或者过于简单,如发现这类情况应及时弥补。
第8章 舆情分析
8.1 舆情的概念
舆论,特别是网络舆论,往往对事件的发展导向起到了推动作用。
8.1.1 舆情与网络舆情
舆论是舆情的近亲,很多舆情的研究都以舆论为起点。
舆情包括网络舆情与社会舆情两部分,两者相互映射,存在互动关系。
网络舆情:在网络空间内,民众围绕舆情因变事项的发生、发展和变化,通过互联网表达出来的对公共政策及其指定者的意见。
8.1.2 舆情分析的目的和意义
舆情是指一定的社会空间,围绕特定社会热点事件产生、发展和变化,社会上大多数的民众对事件处理对策、过程和结果所产生的态度,是绝大多数公众对社会现象和社会问题所表现出来的态度、情绪和意见的集合。
- 舆情分析对政府管理的意义:政府通过舆情监测与分析,能够掌握社会民意,通过了解社会各阶层成员的情绪、态度、看法、意见以及行为倾向,有助于对事件做出正确的判定。
- 舆情分析对企业管理的意义:企业能利用舆情监测,第一时间快速预警负面舆情,及时发现和处理企业的负面信息,纠正错误,保持企业的健康良好形象。
8.1.3 网络舆情的特点
网络环境下的舆情信息的主要来源有:新闻评论、BBS、聊天室、博客、聚合新闻、微博、微信等。
网络舆情所具有的特点:
1)表达的直接性
2)舆情信息在内容上具有随意性和交互性
3)舆情信息在内容上具有随意性和交互性
4)传播的迅速性
5)产生的突发性
6)舆情信息在时间上具有实时性和继承性
7)情绪的非理性
8)舆情信息在发展上具有偏差性
9)人们在面对一个受关注事件的时候,会经过关注前期、发展期、爆炸期、冷静期、冷却期等几个阶段。
8.2 网络舆情的分析方法
网络舆情分析方法包括检索方法与分析方法两个部分。
8.2.1 检索方法
现有的网络舆情检索方法主要包括机器检索与人工检索两类。
网络舆情分析要素:话题的热度、热点的新闻和微博、事件发展的时间轴和重要节点、文本倾向分析和媒体观点摘录。
舆情分析中的检索方法有以下特点:
1)实际操作中自主研发的检索工具使用频率不高,普通商业搜索引擎的使用率较高。
2)机器检索需要事先设定一个目录。
3)机器检索负责数据的粗检索,人工检索负责数据的精细检索。
4)检索的起点是关键词或者排行榜,检索的内容是信息的属性,包括转发量、点击量、评论量、传播关键点。
8.2.2 研判方法
网络舆情的研判主要关注舆情发生的动因、核心诉求、传播路径和传播影响力,并判断舆情的传播走势和影响。
定量研判分析包括:
1)舆情按区域统计分析
2)舆情按时间统计分析
3)舆情按年龄统计分析
4)舆情按性别统计分析
5)舆情按行业统计分析
6)舆情按性质统计分析
7)舆情按密度统计分析
定量研判分析包括:
1)舆情可信度统计研判分析
2)舆情价值统计研判分析
3)舆情等级统计研判分析
4)舆情历史关联统计研判分析
5)舆情趋势预测统计研判分析
6)舆情转预警预测统计研判分析
8.2.3 典型的舆情分析方法
双层分析法包括传播层分析和动因层分析。
信息互动存在两种模式,一是从微博讨论到网络新闻门户传播,再到传统媒体跟进;二是从传统媒体报道到网络新闻门户转载,再到微博讨论。
语义文法与普通文法的区别:语义文法中的非终结符被赋予了领域语义,语义文法可以包括句法和语义层次上的非终结符,也可以只包含语义层次上的非终结符。
文本的情感倾向性分析关注的不是文本本身的内容,而是能否自动分析出文本内容所表达的情感和态度。
倾向性分类则是将情感分类转化为文本分类的问题,利用语言学知识或机器学习的方法,对给定的词语、句子、篇章判断其倾向性。
基于Web的文本挖掘技术主要包括:关联规则挖掘、序列模式挖掘、聚类分析和自动分类技术。
8.3 舆情分析应用:网络舆情分析系统
8.3.1 基本架构
网络舆情分析系统通常具有以下功能:
1)热点话题、敏感话题识别
2)倾向性分析
3)主题跟踪
4)趋势分析
5)突发事件分析
6)报警系统
7)统计报告
大数据环境下舆情系统一般由网络舆情数据采集、数据预处理、数据聚类和舆情分析和结果呈现等模块组成。
8.3.2 信息采集
网络爬虫:相对成熟的一种自动采集网页信息的方式,适用于网络舆情监控与分析系统。
8.3.3 网络资源分析
一般话题发现的研究方法可分为两类:第一类主要是寻找适合话题发现的聚类算法或者对已有的聚类算法进行改造,另一类方法则是挖掘新的话题特征来提高检测的结果。
情感倾向分析方法主要包括语义模式方法和情感词典方法。
8.3.4 网页预处理
正则表达式:由某些字符和特殊符号构成的字符串表达式,它描述了某种语句的形式结构规则,非常适合用来提取页面信息。
问题;为什么HTTPS站点只能防护有源网站?