浏览器会拦截跨域请求,但是只是拦截返回结果,请求还是会被发送到服务器,
那做一些post的操作,被跨域方数据也会被修改到,
这样有意义么
浏览器会拦截跨域请求,但是只是拦截返回结果,请求还是会被发送到服务器,
那做一些post的操作,被跨域方数据也会被修改到,
这样有意义么
有的。
内容安全策略 (CSP,Content Security Policy) 了解一下。
完全禁止跨域、完全允许跨域,都是有缺陷的,当前的这种,让服务器去决定要不要允许,是比较科学的。
跨站脚本攻击 (XSS,Cross Site Scripting) 了解一下。
被跨域方的数据随随便便一个 POST 都被修改了?这不是自己的代码写的有问题么?不做来源校验,不做防护?
有意义.
其实只有get这样安全请求才不会被游览器拦截,挟带数据的post,delete这类的请求因为跨越被拦截后,游览器才会发送一个OPTIONS请求到服务器.OPSIOTN请求是本身并没有携带任何数据,所以并不会修改服务端的数据.
8 回答4.6k 阅读✓ 已解决
6 回答3.2k 阅读✓ 已解决
5 回答2.8k 阅读✓ 已解决
5 回答6.3k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
4 回答2.7k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
有意义。
首先,请求因为跨域被拦截后,会改成 OPTIONS 请求送达服务器,这样服务器就可以知道有人在请求。
至于你说跨域 POST 也能修改,那因为服务器没对 method 进行校验,来者不拒,这是你服务器的问题。
正常的 API 数据操作 method 不包括 OPTIONS , OPTIONS 只用来确认允许的操作。