首先我们要理解什么是JS跨域的由来!
我是这样理解的,因为HTTP是无状态的协议,所谓无状态的就是不像FTP协议有连接,断开之分,用户每次打开一个网页,都可以理解为一次独立的访问,这样就造成了相同网站上的不同网页都需要输入用户名和密码。为了解决这个问题,就要考虑使用Cookie,绝大部分网站都会进行一些cookie访问,那么着就造成了一个危险:别的网站可以通过这些用户名和密码,“登陆“你的账号去进行一些操作。为了阻止这个问题,浏览器就会限制JS去访问不同域的网站资源。
这里需要注意两点,第一,这个域的理解,这个域就是URL的首部,指的是window.location.protocol +window.location.host。它不会去尝试判断相同的ip地址对应着两个域或两个域是否在同一个ip上。
比如说如果协议不同,端口不同,或者说用的是IP地址,那么都不算是同域;
也可以理解为源由规则+主机+端口组成,注意不包括路径
第二,虽然浏览器默认禁止了跨域访问(访问域的资源),但并不禁止在页面中引用其他域的JS文件(理解为不允许脚本主动的去进行跨域访问,但是可以被动被别人引用),并可以自由执行引入的JS文件中的function(包括操作cookie、Dom等等)。所以我现在的理解就是在开发网站时,一定要严格过滤从外面引入的JS脚本。这里我们可以参考去年新浪微博的遭到XSS攻击的事情,这就是因为新浪微博广场页面的XSS过滤不严导致的。这也是跨域攻击的方法之一!就是我们通过点击某个URL,将恶意的JS脚本注入,这个脚本有可能自动进行很多操作。XSS的方法二就是使用外部攻击,详见
http://coolshell.cn/articles/4914.html那么为了解决这个问题就提出了各种跨域的方法
详见
http://www.cnblogs.com/rainman/archive/2011/02/20/1959325.html
分享到:
相关推荐
总的来说,JavaScript跨域的实现方式多样,可以根据具体需求和环境选择合适的策略。JSONP适用于简单的数据请求,CORS适合复杂的跨域交互,代理服务器适用于服务器可控制的场景,而`document.domain`和`postMessage`...
JavaScript跨域和Ajax跨域是Web开发中常见的问题,尤其在进行前后端分离或API调用时,由于浏览器的同源策略限制,不同域名、协议或端口的资源请求会被阻止,这就是所谓的“跨域”。本文将深入探讨JavaScript和Ajax...
本文将深入探讨JavaScript跨域问题的原因、影响以及多种解决方案,帮助开发者理解和解决这个问题。 ### 1. 同源策略 同源策略是浏览器为了安全考虑而实施的一项机制,它规定了只有相同协议(http、https等)、相同...
JavaScript跨域是Web开发中一个常见的挑战,由于浏览器的同源策略限制,JavaScript无法直接访问不同源(协议、域名或端口不一致)的资源。本文将深入探讨JS跨域的解决方案,帮助开发者理解并解决这个问题。 首先,...
在Web开发中,JavaScript(JS)的同源策略限制了不同源之间进行交互,包括从一个页面中的脚本访问另一个不同源的IFrame内容。"解决JS跨域访问IFrame的解决方案"这一主题关注的就是如何克服这个限制,使得在JSP页面中...
总的来说,通过理解和利用JavaScript的跨域机制,我们可以解决AJAX在本地文件系统上的访问限制。尽管JSONP和本文中的方法在某些场景下有效,但在实际开发中,更推荐使用CORS,因为它提供了更安全、更可控的跨域访问...
在使用ArcGIS API for JavaScript开发Web应用程序时,经常会遇到跨域问题。这是因为浏览器的安全策略限制了JavaScript从一个源(域名、协议或端口)请求另一个源的数据。ArcGIS API for JavaScript是一个强大的工具...
JavaScript跨域是Web开发中的一个重要概念,涉及到浏览器的同源策略和如何允许不同源之间进行数据交换。在本文中,我们将深入探讨JavaScript跨域的基本原理、常见方法以及相关的代码实现。 同源策略(Same-Origin ...
本文将深入探讨JavaScript跨域问题及其解决方案,以帮助开发者理解和应对这一问题。 首先,了解同源策略是解决问题的关键。同源策略是浏览器为了保障用户数据安全而实施的一种机制,它禁止了一个源的文档或脚本获取...
通过理解和应用这些知识点,可以有效地解决前后端分离场景下的跨域问题。需要注意的是,除了技术实现外,还应该关注跨域请求的安全性问题,比如防止CSRF攻击等。此外,对于大型项目而言,建议使用更现代的技术栈如...
JavaScript(JS)与Windows Communication Foundation(WCF)服务之间的跨域调用是Web开发中常见的需求,尤其是在构建分布式系统和前后端分离的应用时。本文将详细介绍如何实现JS跨域调用WCF服务,并通过一个控制台...
在学习这个压缩包中的内容时,你可以期待掌握HTML的基本元素和布局,理解Vue.js的原理和实践,以及如何在实际项目中处理跨域问题。这对于提升你的前端开发技能,特别是PC端应用的开发能力非常有帮助。同时,关注作者...
jcrossdomain是一个专门用于解决JavaScript跨域问题的工具,尤其适用于需要双向通信的场景。它通过创建隐藏的IFrame和利用window.postMessage API来实现跨域通信。window.postMessage是HTML5引入的一个API,允许来自...
### JS跨域总结 #### 一、引言与背景 跨域请求,即一个站点中的资源尝试访问另一个具有不同域名的站点上的资源。这在现代Web应用中极为常见,例如利用`<style>`标签加载外部样式表文件、利用`<img>`标签加载外部...
JavaScript(JS)跨域访问是Web开发中一个常见的挑战,由于浏览器的安全策略,不同源的JavaScript代码不能直接访问或操作彼此的数据。这里的“域”通常指的是协议+域名+端口的组合。当一个网页尝试从不同于其源的URL...
**JS跨域APACHE配置详解** 在Web开发中,JavaScript同源策略(Same-origin policy)是一种重要的安全机制,它限制了浏览器中不同源的资源之间的交互。然而,这在进行前后端分离、API调用或者分布式系统开发时,可能...
JavaScript跨域通信是Web开发中的一个重要概念,它涉及到浏览器的安全策略和Ajax请求的限制。由于浏览器的同源策略,一个域名下的JavaScript无法直接访问或操作不同域名下的资源,这就需要我们采用特定的方法来实现...
JavaScript跨域访问解决方案 在Web开发中,JavaScript的同源策略是浏览器为了保障用户安全而实施的一项重要机制。它限制了脚本只能访问与当前页面具有相同协议(如http或https)、主机名和端口号的资源。然而,在...
在IT行业中,跨域访问是Web开发中一个重要的概念,特别是在使用JavaScript、JSP、JSON以及前端库如jQuery时。本教程将详细讲解如何利用这些技术实现跨域数据交互。 首先,我们需要理解“跨域”这个术语。在浏览器的...