http八股 跨域的本质 请求行 请求头 请求体 xss
1小八股
介绍 http 请求分为三个部分,请求行,请求头,请求体
还有状态码的含义
https://juejin.cn/post/7096317903200321544
2tips
Content-Type 影响 chrome 调试时的显示方式
如果是 Content-Type: application/json 浏览器只能显示 request Payload
如果是 Content-Type: multipart/form-data 或 Content-Type: application/x-www-form-urlencoded 浏览器会显示 formData
https://blog.dianduidian.com/post/form-data与request-payload的区别/
3小八股
跨域及处理方案
https://xie.infoq.cn/article/5156a813bf49b0ca0feada736
4大八股
跨域问题的本质:为了防范 CSRF 攻击
来源:https://catcat.cc/post/2020-06-23/
CSRF 攻击原理是创建假网站,诱导用户从该网站上向服务器请求资源,该攻击方式可以窃取用户 cookie 伪造用户身份
如何避免,就是通过跨域策略,浏览器拦截服务器返回的响应,如果服务器只允许同源网站访问,那么就会拦截该响应
我们写前端的时候,如果和服务器不同源,我们就会被当成假冒网站,被浏览器拦截
可以通过代理等方式绕过跨域,也可以让后端对不需要保护的资源开放跨域
服务端开放跨域之后还有另外一种办法保证请求是来自正规网站,而非假冒网站,那就是 CSRF token ,用户请求资源的时候需要带着浏览器中的cookie和正规网页中的token
如果是假冒网站,假冒网站能访问到cookie,但是访问不到token
xss攻击
其中还提到了xss攻击,xss攻击利用不明参数进行攻击,不明参数攻击只能攻击到jsp,php等模板渲染网站,像vue这种需要dom攻击(因为是前端页面处理的url),一些带评论的网站用存储型攻击
xss是注入攻击的一种,sql注入也是注入攻击
【注】:他文章中提到的第一方第三方,第一方是指用户当前使用的网站,不管是正规还是假冒,第三方是指服务器
xss只包含第一方,所以不会有跨域问题
美团技术博客中详细介绍了几种xss攻击,并没有涉及到跨域关键词
https://tech.meituan.com/2018/09/27/fe-security.html
http八股 跨域的本质 请求行 请求头 请求体 xss的更多相关文章
- HTTP 笔记与总结(2 )HTTP 协议的(请求行的)请求方法 及 (响应行的)状态码
(请求行的)请求方法 包括: GET,POST,HEAD,PUT,TRACE,DELETE,OPTIONS 注意:这些请求方法虽然是 HTTP 协议规定的,但是 Web Server 未必允许或支持这 ...
- jsonp 跨域请求
背景: JavaScript是一种在Web开发中经常使用的前端动态脚本技术.在JavaScript中,有一个很重要的安全性限制,被称为"Same-Origin Policy"(同源 ...
- ajax跨域请求时,sessionId不一样,导致无法记住登陆状态
遇到这样一个场景,就是前端的域是dev,请求接口时,接口的域是beta,即使在服务端设置了cookie存放的域,'COOKIE_DOMAIN' => '.roboming.com',虽然c ...
- Django跨域请求
一.jsonp方式 同源策略会阻止ajaxa请求,但不阻止src. jsonp方式其实是利用了<script>标签可以直接跨域的性质,在body中生成一个<script>标签, ...
- 关于Ajax的get与post浅分析,同步请求与异步请求,跨域请求;
Ajax局部异步刷新全称ASynchronous JavaScript And XML.使用Javascript代码获取服务器的数据,Ajax当中有两个请求方法,一个是get方法,一个是post请求方 ...
- Vue--axios:vue中的ajax异步请求(发送和请求数据)、vue-resource异步请求和跨域
跨域原理: 一.使用axios发送get请求 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 & ...
- ajax异步请求/同源策略/跨域传值
基本概念 Ajax 全称是异步的 JavaScript 和 XML . 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进 ...
- Django框架深入了解_01(Django请求生命周期、开发模式、cbv源码分析、restful规范、跨域、drf的安装及源码初识)
一.Django请求生命周期: 前端发出请求到后端,通过Django处理.响应返回给前端相关结果的过程 先进入实现了wsgi协议的web服务器--->进入django中间件--->路由f分 ...
- Django前后端分离跨域请求问题
一.问题背景 之前使用django+vue进行前后端分离碰到跨域请求问题,跨域(域名或者端口不同)请求问题的本质是由于浏览器的同源策略导致的,当请求的响应不是处于同一个域名和端口下,浏览器不会接受响应 ...
- 【笔记】Asp.Net WebApi对js POST带参数跨域请求的支持方案
先说下需求:在原来的WebApi项目中增加对js跨域的请求支持,请求方式:以POST为主,webapi路由规则根据原项目需求修改如下: public static void Register(Http ...
随机推荐
- RabbitMQ GUI客户端工具(RabbitMQ Assistant)
RabbitMQ GUI客户端工具(RabbitMQ Assistant) 平时用控制台或者网页进行管理不免有点不方便,尤其在读取消息的时候不支持过滤和批量发送消息,在此推荐一个漂亮的GUI客户端工具 ...
- C#程序自启动
在窗体加载事件里面加入下述代码: //设置开机自启动 RegistryKey registryKey = Registry.CurrentUser.OpenSubKey ("SOFTWARE ...
- css文字垂直展示的方法
一.使用writing-mode(推荐使用) writing-mode:翻译过来是"写字 - 模式",文本在水平或垂直方向上如何排布 有以下几个属性值: horizontal-tb ...
- mybatis中association和collection使用
mybatis中association和collection使用 一.概述 association:一个复杂的类型关联.许多结果将包成这种类型 collection:复杂类型的集合 这2个属性的使用, ...
- 2022春每日一题:Day 27
题目:友好城市 分析一下可以转化为:选取最多的点对,使得点对之间连线没有交点,没有交点说明什么,假设选定第i组,则对于任意的j,一定满足a[i].l<a[j].l && a[i] ...
- Go语言核心36讲41
你好,我是郝林,今天我们继续分享bytes包与字节串操作的相关内容. 在上一篇文章中,我们分享了bytes.Buffer中已读计数的大致功用,并围绕着这个问题做了解析,下面我们来进行相关的知识扩展. ...
- Go语言核心36讲01
你好,我是郝林,今天我分享的内容是:0基础的你,如何开始入门学习Go语言. 1. 你需要遵循怎样的学习路径来学习Go语言? 我们发现,订阅本专栏的同学们都在非常积极的学习和讨论,这让我们非常欣慰,并且 ...
- requests模块/openpyxl模块/简单爬虫实战
内容概要 第三方模块的下载及使用 网络爬虫及requests模块 网络爬虫实战爬取二手房信息 自动化办公领域模块openpyxl 练习题及答案 第三方模块的下载 第三方模块就类似与别人写好的模块,我们 ...
- MybatisPlus快速入手-----逆向工程
public class getCode { @Test public void main1() { // 1.创建代码生成器 AutoGenerator mpg = new AutoGenerato ...
- 2023年 DevOps 七大趋势
随着时间的推移,很明显 DevOps 已经成为最高效的敏捷框架中的无人不知晓的名字.越来越多的企业(包括各类规模企业)正在采用 DevOps 方法来简化其运营效率.DevOps 的新时代趋势已经见证了 ...