Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么跨源简单POST请求不会触发飞行前检查?_Javascript_Rest_Http_Cors_Same Origin Policy - Fatal编程技术网

Javascript 为什么跨源简单POST请求不会触发飞行前检查?

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(或其他两个

为什么跨源简单POST请求不会触发飞行前检查

但是,如果用户访问了evilsite.com,并且他们被欺骗填写了一个只有表单操作=”的表单http://elsewhere.com“,并且healthe.com上的服务器希望收到包含多部分/表单数据的有效post请求(或其他两个请求中的任何一个),这难道不会保护healthe.com上的服务器吗?这些事实上不应该接受CORS的飞行前检查吗?我错过了什么

…在
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