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 小结
要提高作案的成本。