同源策略限制 AJAX 跨域 以及 安全

同源策略限制   不同源的文档交互

同源   域名 端口 协议 都一样的   资源    ajax  请求必须是同源的

限制:

cookie  indexDB   localstorage  无法读取

DOM  无法读取

ajax 无法发送

通信的几种方式

ajax  websocket  cors   h5 的postMessage

除了ajax 另外的都支持跨域请求

如何创建ajax

第一步 创建XMLHttpRequest对象

      ie 下 是window.activeXObject('Microsoft.XMLTTP')

 let xhr =XMLHttpRequest?new XMLHttpRequest(): new window.activeObject('Microsoft.XMLHTTP')

第二部 判断是GET 还是POST  处理数据  发送请求

    GET 的话 地址是  .....?name=adada&...

    xhr.open("GET",url,true)

     xhr.send(null)   如果是post 在这里发送数据

     需要注意的是 如果是post 必须 设置请求头

第三部 接受数据

      xhr.οnlοad=function(){

                 xhr.status==200||xhr.status==206  (比如媒体资源比较大){

                 let res=xhr.responseText

}

}

安全 问题 

CSRF 

跨站请求伪造

前提条件 接口有漏洞  网站登陆过

过程或者原理  用户A 登陆过网站B 有了cookie  网站C诱使 A 点击  访问B  (会自动带上cookie)

防御措施 

隐藏令牌 

增加一个token  不自动发送的

renderfer验证  验证页面来源

XSS  跨域脚本攻击

没有那两个前提

防御措施  可以尝试后台输出转码

前端对url的请求字段过滤

你可能感兴趣的:(同源策略限制 AJAX 跨域 以及 安全)