浏览器会拦截跨域请求,但是只是拦截返回结果,请求还是会被发送到服务器,这样有意义么

浏览器会拦截跨域请求,但是只是拦截返回结果,请求还是会被发送到服务器,
那做一些post的操作,被跨域方数据也会被修改到,
这样有意义么

阅读 5.3k
3 个回答

有意义。

首先,请求因为跨域被拦截后,会改成 OPTIONS 请求送达服务器,这样服务器就可以知道有人在请求。

至于你说跨域 POST 也能修改,那因为服务器没对 method 进行校验,来者不拒,这是你服务器的问题。

正常的 API 数据操作 method 不包括 OPTIONS , OPTIONS 只用来确认允许的操作。

有的。

内容安全策略 (CSP,Content Security Policy) 了解一下。
完全禁止跨域、完全允许跨域,都是有缺陷的,当前的这种,让服务器去决定要不要允许,是比较科学的。

跨站脚本攻击 (XSS,Cross Site Scripting) 了解一下。
被跨域方的数据随随便便一个 POST 都被修改了?这不是自己的代码写的有问题么?不做来源校验,不做防护?

新手上路,请多包涵

有意义.
其实只有get这样安全请求才不会被游览器拦截,挟带数据的post,delete这类的请求因为跨越被拦截后,游览器才会发送一个OPTIONS请求到服务器.OPSIOTN请求是本身并没有携带任何数据,所以并不会修改服务端的数据.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏