网络与安全-安全

1: 简要描述 HTTPS 的安全机制,描述 Http2 和 Https 的关系

      Https 实现原理

           HTTPS 在通讯过程中的原理,总共分为 8 步 :

  •   1: 客户端发起 HTTPS 请求          2: 服务端的配置
  •   3: 传送证书                                   4: 客户端解析证书
  •   5: 传送加密信息                            6: 服务端解密信息
  •   7: 传输加密后的信息                     8: 客户端解密信息

    http2 和 https 的关系

  • HTTP 协议通常承载于 TCP 协议之上,在 HTTP 和 TCP 之间添加一个安全协议层(SSL 或 TSL),这个时候,就成了我们常说的 HTTPS。
  • 默认 HTTP 的端口号为 80;      HTTPS 的端口号为 443。

2: 什么是点击劫持?如何防范? 

     最常见的是恶意网站:使用 <iframe> 标签(把我们自己含有重要的信息的网页:如交易页面)嵌入进去,然后把 iframe 设置透明,用定位的手段,引诱用户在恶意网站上点击,这样用户在不知不觉中就进行了某些不安全的操作

    有两种方式可以防范:【 iframe会阻塞主页面的Onload事件 】

  • 1: 使用 JS 防范:

// 如果iframe 和 当前被嵌入的页面 不在同一域名下,则表示存在,非法网页嵌入的可能
 if (top.location.hostname !== self.location.hostname) { 
     alert("您正在访问不安全的页面,即将跳转到安全页面!"); 
     top.location.href = self.location.href; 
}
  • 2: 使用HTTP头防范: 

        1: 通过配置 nginx 发送 X-Frame-Options 响应头,这样浏览器就会阻止嵌入网页的渲染。

        2:  add_header X-Frame-Options SAMEORIGIN;


3: CSRF

      概念:CSRF 跨站点请求伪造  跟 XSS一样,存在巨大危害性,是一种对网站的恶意利用,尽管听起来像跨站脚本(XSS)。但是它与XSS非常不同【 XSS利用站点内的信任用户; CSRF通过伪装受信任用户的请求来利用受信任的网站】与XSS相比,CSRF 攻击不太流行(因此对其防范的资源也相对较少),和难以防范,所以认为比 XSS 更具危险

    简单理解: 你可以这样来理解:攻击者盗用了你的身份,以你的身份发送恶意请求(如:发邮件,发信息,盗取你的账号,添加系统管理员,购买商品,虚拟货币转账等),对服务器来说这个请求是合法的,但是却完成了攻击者想要的一个操作。如下:其中 Web A 为存在 CSRF漏洞的网站,Web B为攻击者恶意构建的网站,User C 为 Web A 网站的合法用户:

1: 用户 C 打开浏览器,访问受信任的 Web A 网站,输入用户名和密码请求登录网站 A

2: 在用户信息通过验证之后,网站 A 产生cookie信息 并返回给浏览器,此时用户成功登录网站 A, 可以正常向网站 A 发送请求

3: 用户未退出 网站 A 之前,在同一浏览器中,打开一个TAB页访问 网站 B

4: 网站 B 接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方站点A

5: 浏览器在接收到这些攻击性代码后,根据网站B的请求,在用户不知情的情况下携带              cookie向站点A发送请求,站点A并不知道该请求是由网站B发起的,所有会根据用户C的        cookie信息 以C的权限处理该请求,导致来自网站B的恶意代码被执行

  预防CSRF方法:

1:验证 HTTP Referer 字段
2: 请求地址添加token,并校验
3: 在http请求头里面自定义属性,并校验

特点 

  • 依靠用户标识危害网站
  • 利用网站对用户标识的信任
  • 欺骗用户的浏览器发送 HTTP 请求给目标站点
  • 另外可以通过 IMG 标签会触发一个 GET 请求,可以利用它来实现 CSRF 攻击。

 防御 

  • 通过 referer、token 或者验证码来检测用户提交。
  • 尽量不要在页面的链接中暴露用户隐私信息。
  • 对于用户修改删除等操作最好都使用 post 操作 。
  • 避免全站通用的 cookie,严格设置 cookie 的域

 4: XSS

     概念XSS是一种经常出现在 web应用中 的 计算机安全漏洞,它允许 恶意web用户 将代码(如HTML代码,客户端脚本)植入到 提供给其他用户使用的页面 中,攻击者利用 XSS 漏洞旁路掉访问控制-----同源策略,这种类型的漏洞由于被黑客用来编写危害性更大的网络钓鱼(Phishing)攻击,而变得广为人知,对于跨站脚本攻击,黑客界共识是:跨站脚本攻击是新型的  “缓冲区溢出攻击” , 而JavaScript是新型的ShellCode

示例:
<script>alert(document.cookie)</script>

   特点

        能注入恶意的 HTML/JavaScript 代码到用户浏览的网页上,从而达到 Cookie 资料窃取、会话劫持、钓鱼欺骗等攻击。 【 攻击代码不一定(非要)在 <script></script> 中】

   原因

  • 1:web浏览器本身的设计不安全,浏览器能解析和执行JS代码,但是不会判断该数据或程序代码是否是恶意的;
  • 2:输入输出是web应用最基本的交互,而且网站的交互功能越来越丰富;如果在这个过程中没有做好安全防护,很容易出现XSS漏洞
  • 3:开发人员没有相关的安全意识
  • 4:XSS攻击手段灵活多变

    危害

  • 1:  盗取各类用户账号:(登录账号,用户网银账号,各类管理员账号)、
  • 2:控制企业数据:(读取,篡改,添加,删除,企业敏感数据的能力)
  • 3:窃取企业重要的具有商业价值的资料
  • 4:非法转账
  • 5:强制发送邮件
  • 6:网页挂马(将 木马程序 下载到用户本地,并进一步执行,当木马获得执行之后,就意味         着会有更多的木马被下载,进一步被执行,进入一个恶性的循环,从而使用户的电脑遭到攻击和控制)
  • 7:控制受害者机器向其他网站发起攻击

   如何防范

  • 1: 将重要的cookie标记为http-only,这样 JS语句中document.cookie 语句就获取不到cookie了
  • 2: 表单数据规定值的类型:如 年龄必须是int,name:只能是数字加字母组合。。。
  • 3: 对数据进行 Html Encode处理
  • 4: 过滤 或 移除特殊的 html 标签:如:<script> , <iframe> ,  < for <,   > for >,   &quot for
  • 5: 过滤JavaScript 事件标签:"onclick" , "onfocus" 等待

解析:参考资料:
      https://www.cnblogs.com/phpstudy2015-6/p/6767032.html
      https://www.cnblogs.com/443855539-wind/p/6055816.html
      https://baike.baidu.com/item/XSS%E6%94%BB%E5%87%BB/954065?fr=aladdin

5:  

 

上一篇:前端安全(一)XSS攻击


下一篇:基础安全知识