八、固若金汤:网站的安全架构

(1)道高一尺魔高一丈的网站应用攻击与防御

  常见网络攻击:

1.XSS攻击:XSS攻击即跨站点脚本攻击(Cross Site Script),指黑客通过篡改网页,注入恶意HTML脚本,在用户浏览网页时,控制用户浏览器进行恶意操作的一种攻击方式。
  a.反射型XSS攻击:诱使用户点击一个嵌入恶意脚本的链接。
  b.持久型XSS攻击:将恶意脚本请求保存在攻击的web站点,这样用户浏览正常网页也会被攻击。

  防御方案:
  a.消毒。进行HTML危险字符转义,比如说"<img src ="中的">"转义为"&gt"等等,这样就可以避免大部分攻击。为了避免对不必要的内容错误转义,如"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.统计模型。


 

猜你喜欢

转载自my.oschina.net/134596/blog/1793436