00-1010跨域:只要协议、域名、端口有区别,就被视为不同的域。
ajax跨域:使用Ajax技术请求不同域名的数据。
1.同源策略是什么?
同源策略是网景公司提出的一种众所周知的安全策略。现在所有支持javascript的浏览器都将使用这个策略。
a页设置Cookie,b页不能打开,除非两页“同源”。
同源策略的作用:防止其他网页非法篡改本网页。
同源是指协议、域名和端口相同。
00-1010 1.跨域资源共享(CORS)
CORS(Cross Origin Resource Sharing)是一种跨域资源共享,它定义了浏览器和服务器在访问跨域资源时应该如何通信。
注意:默认情况下,跨域资源共享的请求不包含cookie信息。
想法:使用自定义的HTTP头让浏览器与服务器通信,从而决定请求或响应应该成功还是失败。
在请求的请求头中添加一个来源。
服务器在响应的请求头中设置访问控制允许源。
例如,访问控制允许源:在请求头中设置了与源相同的地址,并且“*”也是可以接受的。如果浏览器检测到相应的设置,就可以允许Ajax跨域访问。
浏览器中CORS的实现:
(1)工业工程中的CORS
使用XDR对象XDomainRequest:XDR对象类似于XHR,但是它的open(请求方法,url),
方法只接收两个参数,XDR的所有请求都是异步的。
(2)其他浏览器中的CORS
直接使用XHR对象
Open(请求方法、url、是否发送异步请求)、
该方法的url被传递成一个绝对url,从而可以实现跨域的资源共享。
(3)跨浏览器的CORS
2.使用脚本和img标签的src
解决方案:在Web页面上调用js文件时,不受是否跨域的影响(不仅如此,所有属性为“src”的标签都具有跨域能力,如script、img、iframe)。
脚本和img标签的src属性不受同源策略的约束,因此您可以在任何服务器上获取脚本并执行它。
3.使用jsonp(填充json的json)
Json是一种数据交换格式,也是一种非官方的跨域数据交换协议。
JSON是地下党派用来书写和交换信息的“暗号”,而JSONP是将暗号书写的信息传递给战友时使用的联合方法。一是描述信息的格式,二是信息传递双方约定的方式。
Client:在跨域url请求中指定回调函数,回调函数是页面在收到响应时执行的函数。
3358域名/json/?回调=句柄
服务器:请求的json数据将被用作回调函数的参数,回调函数将被调用。
例如:句柄({'name':'xiaoming'})
Jsonp由两部分组成:回调函数、数据、
jsonp的跨域原理也使用了脚本标签的src属性:
客户代码
服务器返回的代码remote.js
句柄({'name':'xiaoming'})
js文件成功加载后,我们在url参数中指定的函数将被执行,我们需要的json数据将作为参数传入。
因此,jsonp需要服务器端页面进行相应的协作。
jsonp的优点:简单适用,老浏览器完全支持,服务器修改很少。
jsonp的缺点:只能发送get请求。
4.如何使用服务器代理
浏览器请求对应的服务器,后者请求外部服务。
5.网络套接字
是一种不受同源策略限制的通信协议。
还有一件事:镀铬
标头('访问控制-允许-原始: * ');
标题('访问控制-允许-方法:发布,获取');
在IE10以下,其设置如下
在代码中给js添加一个句子
jquery . support . CORS=true;
//或
$ .support.cors=true
然后:设置IE浏览器-互联网选项-安全-自定义级别-在其他选项下-通过源数据:选择“启用”或“提示”。
webpack直接配置了代理选项。
00-1010 1.什么是xss?
xss的全称是:跨站点脚本,跨站点脚本;
攻击者可以通过在要攻击的网站中插入一些恶意的html和js代码来攻击其他用户。
在攻击者让受害者在浏览器中执行脚本后,他从受害者那里收集数据(如cookie或其他敏感信息)。
避免xss的方法:过滤用户提交的内容。
2.什么是CSRF?
CSRF:跨站点请求伪造是在用户不知情的情况下,通过冒充用户身份提出的请求。
窃取用户cookie,伪造用户请求;
HttpOnly属性可以防止通过javascript访问cookie
要完成CSRF攻击,受害者必须依次完成两个步骤:
1.登录可信网站a,并在本地生成Cookie。
2.不注销a就访问危险网站B。
Xss是实现CSRF的一种方式。
避免CSRF的方法:在请求中添加一个随机数,这样钓鱼网站就不能正常伪造请求了。