从互联网诞生起,安全威胁就一直伴随着网站的发展,各种Web攻击和信息泄露也从未停止。常见的攻击手段有XSS攻击、SQL注入、CSRF、Session劫持等。

1、XSS攻击

XSS攻击即跨站点脚本攻击(Cross Site Script),指黑客通过篡改网页,注入恶意HTML脚本,在用户访问网页时,控制用户浏览器进行恶意操作的一种攻击方式。

常见的XSS攻击类型有两种,一种是反射型,攻击者诱使用户点击一个嵌入恶意脚本的链接,达到攻击的目的,如下图所示:

另一种XSS攻击是持久型XSS攻击,黑客提交含有恶意脚本的请求,保存在被攻击的Web站点的数据库中,用户浏览网页时,恶意脚本被包含在正常页面中,达到攻击的目的,如下图所示:

消毒

对某些html字符转义,如“>”转义为“&gt”等。

HttpOnly

即浏览器禁止页面javascript访问带有HttpOnly属性的Cookie。可通过对Cookie添加HttpOnly属性,避免被攻击者利用Cookie获取用户信息。

2、注入攻击

注入攻击主要有两种形式,SQL注入攻击和OS注入攻击。SQL注入攻击的原理如下图所示。攻击者在HTTP请求中注入恶意的SQL命令,服务器用请求构造数据库SQL命令时,恶意SQL被一起构造,并在数据库中运行。

除了SQL注入,攻击者还根据具体应用,注入OS命令、编程语言代码等达到攻击目的。

消毒

和防XSS攻击一样,过滤请求数据中可能注入的SQL,如"drop table"等。另外还可以利用参数绑定来防止SQL注入。

3、CSRF攻击

CSRF即Cross Site Request Forgery 跨站点请求伪造,攻击者通过跨站点请求,以合法用户的身份进行非法操作。CSRF的主要手段是利用跨站请求,在用户不知情的情况下,以用户的身份伪造请求。其核心是利用了浏览器Cookie或服务器Session策略,盗取用户身份

表单Toke

CSRF是一个伪造用户请求的操作,所以需要构造用户请求的所有参数才可以,表单Token通过在请求参数中增加随机数的办法来组织攻击者获取所有请求参数。

验证码

更加简单高效,即请求提交时,需要用户输入验证码,以避免在用户不知情的情况下被攻击者伪造请求。

Referer Check

HTTP请求头的Referer域中记录着请求来源,可通过检查请求来源,验证其是否合法,还可以利用这个功能来实现突破防盗链。

4、WEB应用防火墙

ModSecurity是一个开源的Web应用防火墙,探测攻击并保护Web应用程序,既可以嵌入到Web应用服务器中,也可以作为一个独立的应用程序启动。ModSecurity最早只是Apache的一个模块,现在已经有JAVA、NET多个版本,并支持Nginx。

ModSecurity采用处理逻辑与攻击规则集合分离的架构模式。处理逻辑(执行引擎)负载请求和相应的拦截过滤,规则加载执行等功能。而攻击规则集合则负责描述对具体攻击的规则定义、模式识别、防御策略等功能。处理逻辑比较稳定,规则集合需要不断针对漏洞进行升级,这是一种可扩展的架构设计。

5、信息加密技术

为了保护网站的敏感数据,应用需要对某些数据进行加密处理,信息加密技术科分为三类:单向散列加密、对称加密和非对称加密

5.1单向散列加密

单向散列加密是指通过对不同输入长度的信息进行散列计算,得到固定长度的输出,这个散列计算过程是单向的,如下图所示。

单向散列加密一般主要用途是用户密码的加密,使密码不可逆的保存到数据库中,即便数据库信息泄露,攻击者也无法知晓原密码是什么。

常见的单向散列算法有MD5、SHA等。

5.2对称加密

即加密和解密都使用同一个密钥,如下图所示:

常用的对称加密算法有DES算法、RC算法等。对称加密是一种传统的加密手段,也是最常用的加密手段,适用于大多数场合。

5.3非对称加密

非对称加密使用的加密和解密不是同一密钥,其中一个对外界公开,被成为公钥,另一个只有所有者知道,被称作私钥。用公钥加密的信息必须用私钥才能解开,反正,用私钥加密的信息只有用公钥才能解开,如下图所示:

非对称加密常用算法有RSA等。HTTPS传输中浏览器使用的数字证书实质上是经过权威机构认证的非对称加密的公钥

转载于:https://www.cnblogs.com/dengyungao/p/7543264.html

软件架构设计学习总结(14):大型网站技术架构(八)网站的安全架构相关推荐

  1. 高性能游戏服务器架构设计,一种高性能大型多人在线角色扮演游戏服务器架构设计.doc...

    一种高性能大型多人在线角色扮演游戏服务器架构设计 一种高性能大型多人在线角色扮演游戏服务器架构设计摘要:大型多人在线角色扮演游戏(Massively Multiplayer Online Role P ...

  2. 软件架构设计学习总结(3):QQ空间技术架构之详解

    QQ空间作为腾讯海量互联网服务产品,经过近七年的发展,实现了从十万级到亿级同时在线的飞跃.在这个过程中,QQ空间团队遇到了哪些技术挑战?其站点前后台架构随着业务规模的变化又进行了怎样的演进与变迁?成长 ...

  3. IT架构师介绍-软件架构设计学习第一天(非原创)

    文章大纲 一.架构师定义 二.架构师分类与具备能力 三.研发人员发展的技术路线 四.架构师知识体系 五.参考文章 一.架构师定义   什么是架构师,这个聊架构话题时永恒的问题.每个公司对架构师的定位也 ...

  4. 软件架构设计常用方法-软件架构设计学习第五天(非原创)

    文章大纲 一.需考虑问题 二.前端架构 三.应用层架构 四.服务层架构 五.存储层架构 六.后台架构 七.数据采集与监控 八.安全架构 九.数据中心机房架构 十.自动化运维 十一.参考文章 一.需考虑 ...

  5. 软件架构设计常用方法-软件架构设计学习第五天(非原创) 发布成功,点击查看文章...

    文章大纲 一.需考虑问题 二.前端架构 三.应用层架构 四.服务层架构 五.存储层架构 六.后台架构 七.数据采集与监控 八.安全架构 九.数据中心机房架构 十.自动化运维 十一.参考文章 一.需考虑 ...

  6. 软件架构设计学习总结(1):标准Web系统的架构分层

    1.架构体系分层图 在上图中我们描述了Web系统架构中的组成部分.并且给出了每一层常用的技术组件/服务实现.需要注意以下几点: 系统架构是灵活的,根据需求的不同,不一定每一层的技术都需要使用.例如:一 ...

  7. 软考备考-系统构架师-12-软件架构设计相关试题整理

    博客迁移 不恰饭的小站 说明 1 整理2009~2016年系统构架师"软件架构设计"题目 2 内容见文档:"考点按章节整理\第 9 章 软件架构设计\软件架构设计.doc ...

  8. 软件架构设计经典书籍有哪些

     1. 软件架构设计 作者:温昱 内容简介:本书紧紧围绕"软件架构设计"这一主题,立足实践解析了软件架构的概念.阐述了切实可行的软件架构设计方法.提供了可操作性极强的完整的架构 ...

  9. 软件架构设计书籍介绍

    1.软件架构设计 作者: 温昱 内容简介:本书紧紧围绕"软件架构设计"这一主题,立足实践解析了软件架构的概念.阐述了切实可行的软件架构设计方法.提供了可操作性极强的完整的架构设计过 ...

最新文章

  1. 【哈渡谱】带你玩转Hadoop之《CentOS虚拟机安装篇》
  2. 使用poi进行数据的导出Demo
  3. Java 多线程同步和异步详解
  4. python jupyter安装_python之jupyter的安装
  5. 【iOS XMPP】使用XMPPFramewok(五):好友列表
  6. Leetcode:0002(两数之和)
  7. 49 CO配置-控制-获利能力分析-把控制范围分配给经营范围
  8. 一起学习C语言:数组(一)
  9. Unicode 编码解码
  10. STM32 HAL库使用IIC
  11. Asp.net MVC验证哪些事(2)-- 验证规则总结以及使用
  12. vue.js环境部署
  13. oracle显示一个月的所有天数
  14. day01 格式化输出和while循环的两个小练习
  15. 软件测试前景和发展方向
  16. Eclipse的使用教程
  17. cat6 万兆_CAT6、CAT6A超六类和CAT7七类网线哪个更适合10GBASE-T万兆网络
  18. 交换机VLAN 模式trunk和access 区别
  19. Cisco Jabber 多个高危漏洞风险通告
  20. 调用百度AI接口实现图片文字识别

热门文章

  1. SpringBoot入门实战项目各阶段目录
  2. mysql登录、导入导出、用户权限、事务操作汇总大全
  3. java getbasicremote_Vue+Java 通过websocket实现服务器与客户端双向通信操作
  4. 合肥学院计算机对口升学2019,15高校招生4340人!2019安徽省对口升学本科招生计划出炉!...
  5. moto linux手机,moto linux手机目录简解
  6. Linux中shell模块的考试,linux下的shell编程要考试了题目这里有可是表示不会 求帮忙...
  7. python相同程序执行结果不同_原理相同只是精简了的python代码,运行结果不同是为什么...
  8. 心动警告!你有一份礼包待领取→
  9. Java并发编程:并发容器之CopyOnWriteArrayList(转载)
  10. 初学Python(一)——数据类型