Loading...
墨滴

JUNE123

2021/06/26  阅读:44  主题:蔷薇紫

网络

xss

定义 注入到页面的恶意代码

  • 例子
<input type="text" value="<%= getParameter("keyword") %>">
<button>搜索</button>
<div>
  您搜索的关键词是:<%= getParameter("keyword") %>
</div>
"> 闭合前面的标签
http://xxx/search?keyword="
><script>alert('XSS');</script>
  • 如何防范 对插入到页面的数据需要进行转义
|字符|转义后的字符| |-|-| |&|&amp;| |<|&lt;| |>|&gt;| |"|&quot;| |'|&#x27;| |/|&#x2F;|

csp 内容安全策略

语法
Content-Security-Policy: <policy-directive>; <policy-directive>
例子
Content-Security-Policy: img-src 'self' 限制图片只能引用自己域名下的

csrf 跨站请求伪造

冒用cookie信息

如何防范

  • 同源验证,referer,origin判断是不是同一个域名下的请求
  • 携带token,生成一个token,每次发起请求的时候带上

http2

  • 多路复用,流id来重组数据
  • 头部压缩,不会重复传送头部
  • 服务端推送

https

  • HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包
  • 混合加密
  • 先请求证书,证书里有公钥,然后生成对话密钥
  • https不会加载http的资源

tcp

  • tcp的可靠性如何保证
  1. 分块传送:数据被分割成了合适的数据块
  2. 接收确认:收到数据会确认
  3. 数据效验:根据首部数据的效验和,确认数据传送过程中没有发生变化
  4. 乱序重排:接收端能够重新排序数据,确保以正确的顺序传送
  5. 重复丢弃:重复的数据包会被丢弃
  6. 流量缓冲:两端都有固定大小的缓冲区,防止速度不匹配导致的数据丢失 ?
  • tcp 三次握手的流程
  1. 客户端发送syn报文请求连接,并带上ISN序列号
  2. 服务端返回ack,syn字段,并且确认序列号为isn+1
  3. 客户端返回ack字段报文
  • 为什么要三次握手
  1. 保证发送方和接收方都能够接收和发送数据
  2. 第一次syn报文说明发送方发送能力
  3. 第二次接收方的syn报文和ack报文说明接收方的发送和接收能力
  4. 第三次的ack报文证明发送方的接收能力
  • 为什么要四次挥手
  1. tcp连接是全双工的,因此每个方向都需要关闭才行
  • 滑动窗口协议
  1. 解决发送接收方速率不匹配的问题,防止接收方处理不过来

浏览器渲染

  • css会阻塞js的解析,js会阻塞dom的解析,css本不会阻塞dom的解析,但是可以通过阻塞js来阻塞dom的 解析
  • 解析->布局->绘制
  • 什么样的操作会引起回流:修改元素尺寸,什么样的操作会引起重绘:修改元素的颜色等

浏览器的事件循环

  • 先处理完宏任务,再处理微任务
  • process.nextTick优先于微任务执行

node事件循环

  • timers阶段,执行定时器回调
  • pending callbacks,执行一些系统回调
  • idle ,空闲阶段
  • poll, 如果设定了timer,而且队列为空就进入timer阶段,如果setImmediate不为空就进入check阶段,如果都没有,就等待io的回调并且执行
  • check,setImmediate
  • close,执行一些关闭的回调,比如socket的关闭

浏览器的缓存

  1. 强缓存
  • expires:Fri, 27 Oct 2017 07:55:30 GMT
  • cache-control:max-age=600
  • cache-control的优先级更高
  1. 协商缓存
  • etag,if-none-match
  • last-modified,if-modified-since

JUNE123

2021/06/26  阅读:44  主题:蔷薇紫

作者介绍

JUNE123