跳至主要內容
yyshino blog

yyshino blog

欢迎各位小伙伴

国社科区块链
【国社科-区块链】烛光之窗
面试题总结
面试题、面经总结
读书笔记
读后感
我的博客预览
前端知识 | 整体了解 | 深入学习 | 复习
跨域

跨域

同源策略

跨域问题其实就是浏览器的同源策略所导致的。

「同源策略」是一个重要的安全策略,它用于限制一个[origin]的文档或者它加载的脚本如何能与另一个源的资源进行交互。它能帮助阻隔恶意文档,减少可能被攻击的媒介。 --来源 MDN

「protocol(协议)、domain(域名)、port(端口)三者一致。」 一致的情况下我们叫同源。


yyshino小于 1 分钟FrontEnd浏览器
XSS和CRSF攻击防御

XSS和CRSF攻击防御

XSS, 即为(Cross Site Scripting), 中文名为跨站脚本, 是发生在目标用户的浏览器层面 上的,当渲染 DOM 树的过程成发生了不在预期内执行的 JS 代码时,就发生了 XSS 攻击。 大多数 XSS 攻击的主要方式是嵌入一段远程或者第三方域上的 JS 代码。实际上是在目 标网站的作用域下执行了这段 JS 代码

CSRF(Cross Site Request Forgery,跨站请求伪造),字面理解意思就是在别的站点伪造 了一个请求。专业术语来说就是在受害者访问一个网站时,其 Cookie 还没有过期的情 况下,攻击者伪造一个链接地址发送受害者并欺骗让其点击,从而形成 CSRF 攻击


yyshino大约 2 分钟FrontEnd网络安全
跨域

输入 URL 到页面加载显示完成发生了什么

  • DNS 解析
  • TCP 连接
  • 发送 HTTP 请求
  • 服务器处理请求并返回 HTTP 报文
  • 浏览器解析渲染页面
  • 连接结束

yyshino小于 1 分钟FrontEnd浏览器
Cookie如何防范XSS攻击

XSS攻击

XSS(跨站脚本攻击)是指攻击者在返回的 HTML 中嵌入 javascript 脚本,

Cookie如何防范XSS攻击

为了减轻这些攻击,需要在 HTTP 头部配上,set-cookie: httponly-这个属性可以防止 XSS,它会禁止 javascript 脚本来访问 cookie。 secure - 这个属性告诉浏览器仅在请求为 https 的时候发送 cookie。 结果应该是这样的:Set-Cookie=<cookie-value>....


yyshino小于 1 分钟浏览器HTTP
Cookie_sessionStorage_localStorage的区别

cookie_session区别

  1. cookie 数据存放在客户的浏览器上,session 数据放在服务器上。
  2. cookie 不是很安全,别人可以分析存放在本地的 COOKIE 并进行 COOKIE 欺骗 考虑到安全应当使用 session。
  3. session 会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能 考虑到减轻服务器性能方面,应当使用 COOKIE。
  4. 单个 cookie 保存的数据不能超过 4K,很多浏览器都限制一个站点最多保存 20 个 cookie。

yyshino小于 1 分钟浏览器HTTP
Cookie_sessionStorage_localStorage的区别

Cookie_sessionStorage_localStorage的区别

共同点:

都是保存在浏览器端,并且是同源的

区别:

  • cookie 数据始终在同源的 http 请求中携带(即使不需要),即 cookie 在浏览器 和服务器间来回传递
  • sessionStorage 和 localStorage 不会自动把数据发给服务器,仅 在本地保存
  • cookie 数据还有路径(path)的概念,可以限制 cookie 只属于某个路径下,

yyshino大约 2 分钟浏览器HTTP
几个很实用的BOM属性对象方法

fetch发送2次请求的原因

fetch 发送 post 请求的时候,总是发送 2 次,第一次状态码是 204,第二次才成功?

原因很简单,因为你用 fetch 的 post 请求的时候,导致 fetch 第一次发送了一个 Options 请求询问服务器是否支持修改的请求头,如果服务器支持,则在第二次中发送真正的请求。


yyshino小于 1 分钟浏览器HTTP
Get和Post的区别

Get和Post的区别

  • get 参数通过 url 传递,post 放在 request body 中。
  • get 请求在 url 中传递的参数是有长度限制的,而 post 没有。
  • get 比 post 更不安全,因为参数直接暴露在 url 中,所以不能用来传递敏感信息。
  • get 请求只能进行 url 编码,而 post 支持多种编码方式
  • get会将数据缓存起来,而post不会
  • get 请求参数会被完整保留在浏览历史记录里,而 post 中的参数不会被保留。
  • GET 和 POST 本质上就是 TCP 链接,并无差别。但是由于 HTTP 的规定和浏览器/服务器 的限制,导致他们在应用过程中体现出一些不同。 GET 产生一个 TCP 数据包;POST 产生两个 TCP 数据包。

yyshino小于 1 分钟浏览器HTTP