• 聊聊web安全的相关话题
  • 发布于 2个月前
  • 143 热度
    0 评论

网络安全的的问题一直是我们老生常谈的问题,这不前几天A站不是被爆出千万用户数据资料在地下黑市廉价出售的新闻,所以今天我们还是得好好聊聊Web安全中常见的黑客攻击技术。

web 安全(客户端)

1.跨站脚本攻击(XSS)
  解释:指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的
  XSS分类:
  1.反射型XSS => 
              简单吧用户输入的数据“反射”给浏览器
              输入的数据是一段恶意脚本
              往往需要诱惑用户“点击”一个恶意链接才能成功
  2.存储型XSS =>
              把用户输入的数据“存储”在服务器
              输入的数据是一段恶意脚本
              访问的用户可能会受到的脚本攻击
  3.DOMBased XSS =>
              通过修改页面的DOM 节点形成XSS

如何解决?
  1.httpOnly   => 浏览器不要在除HTTP(和 HTTPS)请求之外暴露Cookie
  2.输入检查 客户端和服务端都要检查
  3.输出检查,编码或者转义
      => HTMLEncode
      =>jsEncode
      =>encodeForCss()
      =>urlEncode
 4.处理富文本 
     => 禁止自定义css和style
5.防御DOM Based XSS 触发了js应使用jsEncode
  输出到HTML内容或者属性要HtmlEncode

2.跨站点请求伪造(CSRF)
   解析:伪造成合法用户发起请求              
   分类:
   1.Session Cookie(临时Cookie) => 
                      Session Cookie则没有指定Expire时间,所以浏览器关闭后,Session Cookie就失效了。
                      Session Cookie保存在浏览器进程的内存空间中
                      特性:<img> 等跨域加载资源时Session Cookie被发送成功 
                
   2.Third-party Cookie (本地Cookie) => 
                      服务器在Set-Cookie 时指定看Expire时间,只有到了Expire时间后Cookie才会失效,所以这种Cookie 会保存在本地   
                      某些浏览器会阻止Third-party Cookie的发送。
                        特性:<img> 等跨域加载资源时Third-party Cookie被发送成功 ?
                              Safari 会拦截 Third-party Cookie 
                              chorme 不会拦截
   3.不获取Cookie=>
               如果用户访问了目标网站且同时打开攻击网站,攻击网站发送请求(post和get)如果服务器不区分请求方式,存在目标网站的临时Cookie,攻击成功
               如果只允许Post 请求,构造form 表单的post请求,攻击成功
   4.flash CSRF 
如何解决?
 1.验证码
 2.Referer Check 
    => 检测合法资源
    => 单服务器不是什么时候都能获取到Refer
 3.cookie 
   => cookie  不要放在URL中
   => 使用post
   => 有效生命周期内 token消耗掉前使用一个Token

3.点击劫持 (ClickJacking ) => 视觉上欺骗的手段
  一是攻击者使用一个透明的iframe,覆盖在一个网页上,然后诱使用户在该页面上进行操作,此时用户将在不知情的情况下点击透明的iframe页面;
  二是攻击者使用一张图片覆盖在网页,遮挡网页原有位置的含义;
如何解决:
 X-Frame-Option
   => DENY(拒绝当前页面加载任何frame页面)
   => ALLOw_FRom origin 

   => SAMEORIGIN  


用户评论