Javascript 为什么跨源简单POST请求不会触发飞行前检查?
为什么跨源简单POST请求不会触发飞行前检查 但是,如果用户访问了evilsite.com,并且他们被欺骗填写了一个只有表单操作=”的表单http://elsewhere.com“,并且healthe.com上的服务器希望收到包含多部分/表单数据的有效post请求(或其他两个请求中的任何一个),这难道不会保护healthe.com上的服务器吗?这些事实上不应该接受CORS的飞行前检查吗?我错过了什么 …在Javascript 为什么跨源简单POST请求不会触发飞行前检查?,javascript,rest,http,cors,same-origin-policy,Javascript,Rest,Http,Cors,Same Origin Policy,为什么跨源简单POST请求不会触发飞行前检查 但是,如果用户访问了evilsite.com,并且他们被欺骗填写了一个只有表单操作=”的表单http://elsewhere.com“,并且healthe.com上的服务器希望收到包含多部分/表单数据的有效post请求(或其他两个请求中的任何一个),这难道不会保护healthe.com上的服务器吗?这些事实上不应该接受CORS的飞行前检查吗?我错过了什么 …在otherbes.com上的服务器期望使用multipart/form data(或其他两个
otherbes.com
上的服务器期望使用multipart/form data
(或其他两个中的任何一个)的有效post请求,这难道不能保护otherbes.com
上的服务器吗
这是对的,它不会,而且对于otherbes.com
来说,“期望有效的post请求”将是一个重大的安全故障。这种攻击——存在于有或没有CORS的情况下,由服务器来防范
CORS的引入是为了在不引入任何新的安全问题的情况下实现跨源请求。它没有解决这个现有的安全问题,因为这样做会有成本(飞行前的请求不是免费的),但没有好处(因为服务器仍然需要保护自己免受不使用CORS的浏览器的攻击)
关于这一点,我已在中详细介绍
…在otherbes.com
上的服务器期望使用multipart/form data
(或其他两个中的任何一个)的有效post请求,这难道不能保护otherbes.com
上的服务器吗
这是对的,它不会,而且对于otherbes.com
来说,“期望有效的post请求”将是一个重大的安全故障。这种攻击——存在于有或没有CORS的情况下,由服务器来防范
CORS的引入是为了在不引入任何新的安全问题的情况下实现跨源请求。它没有解决这个现有的安全问题,因为这样做会有成本(飞行前的请求不是免费的),但没有好处(因为服务器仍然需要保护自己免受不使用CORS的浏览器的攻击)
我已经在中详细介绍了这一点。otherbes.com是否允许CORS?如果没有,evilsite.com对此无能为力。。。CORS由服务器控制,而不是在CORS出现之前开发的ClientServer没有“允许CORS”的概念,它们的运行假设是所有对它的POST请求都将遵循同一来源策略。正确,因此不允许跨来源资源共享,因为旧服务器不会,因为它们不知道CORS头,所以不发送它们,因此没有问题-您需要了解CORS betterdoes别处。com允许CORS吗?如果没有,evilsite.com对此无能为力。。。CORS由服务器控制,而不是在CORS出现之前开发的ClientServer没有“允许CORS”的概念,它们的运行假设是所有对它的POST请求都将遵循同一来源策略。正确,因此不允许跨来源资源共享,因为旧服务器不会,因为它们不知道CORS头,所以不发送它们,因此没有问题-您需要更好地理解CORS
A request that doesn’t trigger a CORS preflight—a so-called “simple request”...
The only allowed methods are:
- GET
- HEAD
- POST
...
The only allowed values for the Content-Type header are:
- application/x-www-form-urlencoded
- multipart/form-data
- text/plain