《大型网站技术架构原理与解析》第八章 固若金汤:网站的安全架构
2011年微博XSS共计以及CSDN多个网站密码用户泄露。
8.1 道高一尺魔高一丈的网站应用攻击与防御
70%的web应用共计都来自XSS攻击和SQL注入攻击。此外还有CSRF\SESSION劫持等手段。
8.1.1 XSS攻击
XSS即跨站点脚本共计,黑客篡改网页,注入html脚本,在用户浏览网页时,控制用户浏览器进行恶意操作的方式。
常见两种,1种是反射型诱导点击嵌入恶意脚本。
防止XSS攻击
1、消毒:对一些转义字符进行过滤消毒处理。
2、httponly:禁止页面js访问带有httponly属性的cookie
8.1.2 注入攻击
主要有SQL攻击和OS注入攻击。
攻击者获取数据库表的手段:
开源:数据表是公开的,可以直接攻击
错误回显:500错误会显示到浏览器上
盲注
放sql注入攻击要避免被攻击者猜测到表名等数据库表结构信息,此外还可以:
消毒:过滤掉请求中可能注入的sql
参数绑定:攻击者恶意的sql会被当做sql参数而不是sql命令执 行。
除了sql注入,还可以注入os命令、编程语言代码、利用程序漏洞达到攻击目的。
8.1.3 CSRF 攻击
表单token、验证码、referer check。
8.1.4 其他攻击和漏洞
Error Code
错误回显,显示了服务器的一些信息。
html注释(自动review去注释)
文件上传(设置文件上传白名单)
路径遍历(JS\CSS独立部署、独立域名)
8.1.5 Web应用防火墙
8.1.6 网站安全漏洞扫描
8.2 信息加密技术以及秘钥安全管理
数据库保存的信息应该脱敏处理,加密分为3类:单向散列加密、对称加密和非对称加密。
8.2.1 单向散列加密
单向散列加密是指通过不同输入长度的信息进行散列计算,得到固定长度输出。
加盐算法增加破解难度,常见单向散列算法有MD5\SHA。
其一个特点就是任何输入微小变化输入完全不同,这个特性也可以用来生成信息摘要。
8.2.2 对称加密
所谓对称加密就是加密解密使用同一个秘钥。
常见的又DES算法、RC算法。
8.2.3 非对称加密
对外的是公钥,用公钥信息加密的必须用私钥才能解开。
8.2.4 秘钥安全管理
实践中秘钥的存储要么是放在一个独立的服务器上,做成专用的设施,对外提供加密和解密服务。另外一个是放在应用系统中,秘钥被切分成薯片,加密后分别保存在不同存储介质中。
8.3 信息过滤与反垃圾
8.3.1 文本匹配
文本匹配主要解决敏感词过滤问题。
如何快速判断用户信息中是否含有敏感词呢?一般用Trie树的变种来完成,Trie算法本质是一个有限状态机,根据输入数据进行状态转移。
另外一种是简单的构造多级hash表进行文本匹配。
8.3.2 分类算法
对海量信息人工审核是不现实的,利用分类算法、对信息内容进行处理。
贝叶斯分类。
通过对朴素贝叶斯算法增加特征值处理的关联依赖处理,得到TAN算法,通过关联规则的聚类挖掘,有更强大的算法ARCS 但是贝叶斯简单、快。
8.3.3 黑名单
黑名单可以对ip地址、文章标题等内容进行黑名单处理。
对过滤需求不完全精确的情况下,可用布隆过滤器代替hash表。
通过一个二进制列表和一组随机数映射函数实现。
8.4 电子商务风险控制
8.4.1 奉献
B2B\B2C\C2C 每个场景不同,风险大致可以分为以下几种:
账户风险、卖家风险、卖家风险、交易风险
8.4.2 风控
机器自动风控的技术主要有规则引擎和统计模型
1、规则引擎
2、统计模型
8.5 小结
要提高作案的成本。
《大型网站技术架构原理与解析》第八章 固若金汤:网站的安全架构相关推荐
- 关于大型网站技术演进的思考(十六)--网站静态化处理—前后端分离—下(8)
出处:夏天的森林博客 我第一次听说nodejs技术大概是在2009年年末,不过我真正认真在网络上进一步了解nodejs还是在2010年年中,当时对nodejs的认识和我现在对nodejs的认识有着天壤 ...
- 关于大型网站技术演进的思考(十五)--网站静态化处理—前后端分离—中(7)
出处:夏天的森林博客 上篇里我讲到了一种前后端分离方案,这套方案放到服务端开发人员面前比放在web前端开发人员面前或许得到的掌声会更多,我想很多资深前端工程师看到这样的技术方案可能会有种说不出来的矛盾 ...
- 关于大型网站技术演进的思考(十五)--网站静态化处理—前后端分离—中(7)...
2019独角兽企业重金招聘Python工程师标准>>> 出处:夏天的森林博客 上篇里我讲到了一种前后端分离方案,这套方案放到服务端开发人员面前比放在web前端开发人员面前或许得到的掌 ...
- zsh与oh-my-zsh ← 阳志平的个人网站::技术 zsh与oh-my-zsh ← 阳志平的个人网站::技术...
zsh与oh-my-zsh ← 阳志平的个人网站::技术 zsh与oh-my-zsh Mac下默认的终端使用的是bash,有没有更好的? 是zsh. 安装zsh brew install zsh 配置 ...
- 《大型网站技术架构:核心原理与案例分析》拜读总结,第八章——固若金汤:网站的安全架构
道高一尺,魔高一丈的网站应用攻击与防御 XSS和SQL注入构成网络应用攻击的最主要的手段,(70%).此外,常用的WEB应用还包括CSRF,Session劫持等手段. XSS攻击:跨站点脚本攻击,指黑 ...
- 关于大型网站技术演进的思考(二十)--网站静态化处理—web前端优化—中(12)...
Web前端很多优化原则都是从如何提升网络通讯效率的角度提出的,但是这些原则使用的时候还是有很多陷阱在里面,如果我们不能深入理解这些优化原则背后所隐藏的技术原理,很有可能掉进这些陷阱里,最终没有达到最佳 ...
- Kafka 设计架构原理详细解析(超详细图解)
什么是Kafka? Apache Kafka是一个开放源代码的分布式事件流平台,成千上万的公司使用它来实现高性 能数据管道,流分析,数据集成和关键任务等相关的应用程序. Kafka的应用场景 构造实时 ...
- 关于大型网站技术演进的思考
关于大型网站技术演进的思考(一)--存储的瓶颈(1) 前不久公司请来了位互联网界的技术大牛跟我们做了一次大型网站架构的培训,两天12个小时信息量非常大,知识的广度和难度也非常大,培训完后我很难完整理出 ...
- 关于大型网站技术演进的思考--网站静态化处理
转自: 夏天的森林blog:(系统设计与架构(47)) 一 在存储瓶颈的开篇我提到像hao123这样的导航网站只要它部署的web服务器数量足够,它可以承载超大 规模的并发访问量,如果是一个动态的网站, ...
最新文章
- python 开发版-MicroPython开发之物联网快速开发板
- 纯CSS打造可折叠树状菜单
- JavaScript学习笔记(四十四) 装饰器
- ai边缘平滑_AI基础教程113:“效果”菜单之“画笔描边”(一)喷溅效果
- Flume与Kafka整合案例详解
- mybatis-plus的 mapper.xml 路径配置的坑
- maven多模块项目,多web合并项目使用心得
- 中国剩余定理-数硬币
- 数据结构——第九章 查找
- 图解CNN十大算法架构
- 自组织特征映射网络(SOFM)
- 木瓜奇迹洗服务器维护,木瓜奇迹各种职业+点法
- SLAM学习(SL)基于特征的前度匹配(LOAM系列)
- 1个英文字母、1个汉字、标点符号各占几个字节?以及文件的编码方式查看
- java实现画笔的画圆与矩形功能_Java实现画线、矩形、椭圆、字符串功能
- A `Concatenate` layer requires inputs with matching shapes except for the concat axis.
- SQL1054错误Unknown column .... in on clause
- ORACLE-使用DBCA创建数据库
- mysql 1142 问题解决
- 生成扩散模型漫谈:一般框架之ODE篇