美文网首页
CORS 访问控制备忘录

CORS 访问控制备忘录

作者: abyte | 来源:发表于2019-08-18 21:03 被阅读0次

    关于 CORS 的基础知识在 MDN上有很详细的描述HTTP访问控制(CORS)和可能会有的隐患。CORS机制及其风险

    不过有一点需要注意,跨域的请求,最终是会被目标服务器当作一个正常的请求处理,只是浏览器拦截了返回结果。
    A页面里有一个ajax请求访问B服务的接口,B服务没有设置 Access-Control-Allow-Origin这个header。
    查看B的 nginx 的 access_log 还是可以看到请求被正确处理,返回200状态码。

    192.168.10.1 - - [18/Aug/2019:17:12:36 +0800] "GET /test HTTP/1.1" 200 40 "http://a.test/test.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36"

    经过测试发现:如果将设置 withCredentials 为 true,浏览器会携带上cookie请求目标服务器,服务器正常处理和相应。

    <script>
        $.ajaxSetup({xhrFields: {withCredentials: true}});
        $.get('http://b.test/test',[], function (data) {
            alert(data);
        });
    </script>
    

    也就是说你可以在A页面携带上B的身份凭证数据去搞事情。除非A页面是在自己可以控制的浏览器(App 内置浏览器),那样就可以拦截B服务器返回的数据包。不过A都已经在自己的App了,想玩啥不行?

    相关文章

      网友评论

          本文标题:CORS 访问控制备忘录

          本文链接:https://www.haomeiwen.com/subject/sdzrsctx.html