(1)道高一尺魔高一丈的网站应用攻击与防御
常见网络攻击:
1.XSS攻击:XSS攻击即跨站点脚本攻击(Cross Site Script),指黑客通过篡改网页,注入恶意HTML脚本,在用户浏览网页时,控制用户浏览器进行恶意操作的一种攻击方式。
a.反射型XSS攻击:诱使用户点击一个嵌入恶意脚本的链接。
b.持久型XSS攻击:将恶意脚本请求保存在攻击的web站点,这样用户浏览正常网页也会被攻击。
防御方案:
a.消毒。进行HTML危险字符转义,比如说"<img src ="中的">"转义为">"等等,这样就可以避免大部分攻击。为了避免对不必要的内容错误转义,如"3<5"中的"<"需要进行文本匹配后再转义。消毒几乎是所有网站最必备的XSS防攻击手段。
b.HttpOnly。浏览器禁止页面JS访问带有HttpOnly属性的Cookie。HttpOnly并不是直接对抗XSS攻击的,而是防止XSS攻击者窃取Cookie。对于存放敏感信息的Cookie,如用户认证信息等,可通过对该Cookie添加HttpOnly属性,避免被攻击脚本窃取。
2.注入攻击。SQL注入攻击和OS注入攻击。
a.SQL注入攻击:就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
SQL注入攻击需要了解数据库表结构才能进行攻击,然后获取数据库表结构的手段有如下几种:开源:网站采用开源软件搭建,所以数据库结构是公开的。 错误回显:通过网站返回错误信息进行猜测。 盲注。
防御:消毒。将请求数据中含有的sql,如"drop table"等。 参数绑定:使用预编译手段,绑定参数是最好的防SQL注入方法。目前许多数据访问层框架,如IBatis,Hibernate等,都实现SQL预编译和参数绑定,攻击者的恶意SQL会被当作SQL的参数,而不是SQL命令被执行。
3.CSRF攻击
CSRF(Cross Site Request Forgery, 跨站点请求伪造),攻击者通过跨站请求,以合法用户的身份进行非法操作,如转账交易、发表评论等。其核心是利用了浏览器Cookie或服务器Session策略,盗取用户身份。
所以CSRF的防御手段主要是识别请求者身份,主要有下面几种方法:
a.表单Token。
b.验证码。
c.Referer check
4.其他攻击和漏洞
a.Error Code。报出明显的错误,容易泄露信息。
b.HTML注释。开发人员对代码的注释显示到客户端上。
c.文件上传。可能被上传了可执行程序。
d.路径遍历。攻击者在请求的URL中使用相对路径,遍历系统未开放的目录和文件。
5.Web应用防火墙
6.网站安全漏洞扫描
(2)信息加密技术及密钥安全管理
1.单向散列加密。单项散列加密是指通过对不同输入长度的信息进行散列计算,得到固定长度的输出,这个散列计算过程是单向的,不能对固定长度的输出计算得到输入。常见算法:MD5,SHA。
2.对称加密。加密解密都用同一把密钥。常见算法:DEC、REC算法
3.非对称加密。解密方将密钥给加密方加锁,然后解密方用私钥对信息解锁。就是密钥和私钥都是自己的,要加密信息的时候把密钥提供给发送信息方,然后自己用私钥解密。常见算法:RSA。
4.密钥安全管理
改善密钥安全的手段有两种:
a.把密钥和算法放在一个独立的服务器上,甚至做成一个专用的硬件设施,对外提供加密和解密服务,应用系统通过调用这个服务,实现数据的加解密。
b.将加解密算法放在应用系统中,密钥则放在独立服务器中,为了提高密钥的安全性,实际存储时,密钥被切分成数片,加密后分别保存在不同存储介质中,兼顾密钥安全性的同时又改善了性能。
(3)信息过滤与反垃圾
1.文本匹配。
a.Trie树。b.构造多级Hash表进行文本匹配。
2分类算法。贝叶斯算法。
3.黑名单。
准确性高、信息量不打:可以将垃圾邮箱地址放至Hash表,发送时进行匹配,但是当数据量大的时候,效率会下降。
信息量大,允许准确率有一定的偏差:布隆过滤器。将邮箱地址用8个随机映射函数映射到存储空间二进制的8个位置上,然后将8个位置全部置1。查询的时候用随机映射函数得到空间上8个位置的Bit,全为1则存在黑名单,要是有一个为0则不存在。
(4)电子商务风险控制
1.风险
a.账户风险。
b.买家风险。
c.卖家风险。
d.交易风险。
2.风控
a.规则引擎。
b.统计模型。