监控页面的资源请求

作者: Stevenzwzhai | 来源:发表于2019-02-18 17:51 被阅读5次

前言

加载一个web页面,可能会请求各种静态资源,比如图片,js,css等,但是很有可能加载了一些意料之外的东西,比如一段恶意脚本,或者一个广告等等。尤其是你的页面依赖第三方的东西的时候变得更加不可控。

常见的意外

  • 看个小说吧


    image.png

卧槽,这咋还有棋牌,很多时候就一不小心点进去了,而且还很可能自动开始下载。

  • 刷个微博


    image.png

诶,还有诱人小广告(你动心了吗)。

  • 随便看点啥吧
image.png

还是悄悄地出现了,并且引起了我的注意。

广告有些是网站自己有广告位的,这些是正常的,但是总有些是意外的产出,比如运营商劫持,使用https势在必行,它可以帮我们解决掉大多数的问题。

https全搞定?

image.png

前一段时间event-stream 事件引起了广大猿人的注意,event-stream被很多的前端流行框架和库使用,每月有几千万的下载量。不怕贼偷就怕贼惦记啊!
最简单写一个:


image.png

对于一些“意外”的资源请求多数都是用户反馈我们才得知,但是具体情况一概不知。如何监听甚至是解决呢?

监控dom的一举一动

MutationObserver这个东西大家或许听过,它提供了监控dom的能力,举个例子:

  • 首先我们把监控代码写好,当页面有增加script 标签,并且有src属性的时候打log。
image.png
  • 打开浏览器运行一下
image.png

可以看到控制台输出了我们想要的东西,此处我们就可以做一些常规上报了。

除此之外我们还可以做一些其他东西,比如:
  1. 异常的a标签链接
    当我们监测到异常的a标签可以及时删除掉。
image.png
  1. 异常的iframe插入
  2. 元素显示内容变化记录

注意:这里MutationObserver只兼容到IE11,对于低版本的可以使用Mutation events,但是这个事件性能不是很好,这里就不在详细介绍。

image.png

虽然我们监控到了有异常资源,但是依然发出了请求,还有什么办法吗?

防守大闸-CSP

CSP策略,全称Content Security Policy,很多人把它喻为XSS攻击的终结者,因为这种策略不再像传统只靠各种正则和特征匹配来识别跨站攻击Payload,而是直接从协议层把一些存在安全隐患的用法默认干掉,把同源同域更发挥到了极致。
比如你的站点js文件请求域名都是a.cdn.cn,那么添加csp策略之后,所以其他域名的js请求全都会被拦截。

image.png

直接拦截掉,异常js请求

image.png image.png
添加方式:
  1. meta标签
  2. 在返回头信息中添加content-security-policy字段

第一种方式我写了个简单的webpack插件,CSPPlugin,可以拿来直接使用。目前来说貌似只有知乎和github使用了这种策略,因为它实在是太严格了。

小结

网页千万个,安全第一位。
平时不注意,后果很严重。


image.png

相关文章

  • 监控页面的资源请求

    前言 加载一个web页面,可能会请求各种静态资源,比如图片,js,css等,但是很有可能加载了一些意料之外的东西,...

  • 页面监控之监控页面报错

    监控js报错 错误示例 监控js报错的同时监控资源加载失败,即加上捕获选项即可 错误示例 监听ajax请求 监听未...

  • js跨域之nodejs代理跨域

    原理是 创建一个本地服务器,访问本地服务器,监控到 接口请求转发到目标服务器,如果是资源请求,则直接返回本地资源

  • 容器监控工具 cAdvisor

    cAdvisor 是带监控界面的、最易入门的docker容器监控工具了 cAdvisor 可以对节点机器上的资源及...

  • 浏览器渲染过程

    3. 浏览器渲染机制与优化 3.1 资源的请求和解析 请求是指资源获取,解析指的是代码的执行 客户端从服务器获取页...

  • 检测 SAP Spartacus 服务器端渲染页面响应时间的两种

    方法1:Chrome 开发者工具,disable cache,在 network 标签页里,监控页面的 Waiti...

  • Js error 监控

    一个全局监控js报错的模块,前端需要监控的有三点:1.js语法错误2.ajax请求3.静态资源加载错误 js语法错...

  • 监控内存使用率

    监控内存使用率监控目的监控方法监控实现一、监控目的通过监控内存使用率判定机器内存资源消耗情况,及时处理并优化资源配...

  • 详解docker容器的资源监控方案

    docker资源的监控方案 如何监控docker容器整体的资源利用率呢?如何监控独立docker容器的资源利用率呢...

  • Hbase集群监控

    Hbase集群监控 Hbase Jmx监控 监控每个regionServer的总请求数,readRequestsC...

网友评论

    本文标题:监控页面的资源请求

    本文链接:https://www.haomeiwen.com/subject/qhuaeqtx.html