同源策略

网络空间安全笔记1

微笑、不失礼 提交于 2019-12-02 08:34:46
同源策略 同源策略(Same Origin Policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器啊正常功能可能都会受到影响。可以说Web时构建在同源策略的基础上的,浏览器只是针对同源策略的一种实现。 很多时候浏览器实现的同源策略时隐性的、透明的,很多因为同源策略导致的问题并没有明显的出错提示,如果不熟悉同源策略,则可能一直都会想不明白问题的原因。 浏览器的同源策略,限制了来自不同的“document ”或脚本,对当前“document ”读取或设置某些属性。 这一策略及其重要,试想如果没有同源策略,可能a.com的一段JavaScript脚本,在b.com未曾加载此脚本时,也可以随意涂改b.com的页面(在浏览器的显示中)。为了不让浏览器的页面行为发生混乱,浏览器提出了”Origin”(源)这一概念,来自不同Origin的对象无法互相干扰 由上表可以看出,影响”源”的因素有:host(域名或IP地址,如果IP地址则看作一个根域名)、子域名、端口、协议. 需要注意的时,对于当前页面来说,页面内存放JavaScript文件的域并不重要,重要的是加载JavaScript页面所在的域是什么。 换言之,a.com通过以下代码: <script src=http://b.com/b.js></script> 加载了b.com上的b.js但是b

浏览器同源策略阻止ajax请求

☆樱花仙子☆ 提交于 2019-12-02 06:46:06
Cross-Origin Resource Sharing ,跨域资源共享,简称 CORS ,可以作为一种跨域请求以及响应的解决方案。 1.恳求的url是PHP的,须要PHP中echo: header ( ""Access-Control-Allow-Origin: *"" ); 这是针对全部的对这个页面的请求,<?php header('Access-Control-Allow-Origin:http://A.abc.com'); ?>指定唯一允许访问的页面; 2.html的,须要 <meta http-equiv="Access-Control-Allow-Origin" content="*"> 来源: oschina 链接: https://my.oschina.net/u/1040513/blog/406797

浏览器同源策略以及Script Error错误

╄→尐↘猪︶ㄣ 提交于 2019-12-01 19:49:02
本文首发于知乎 《浏览器同源策略以及Script Error错误》 ,搬运转载请注明出处,否则追究版权责任。 同源策略限制了从同一个源加载的文档或脚本如何与来自另一个源的资源进行交互。这是一个用于隔离潜在恶意文件的重要安全机制。 一个 源 的 定义 如果两个页面的协议,端口(如果有指定)和域名都相同,则两个页面具有相同的 源 。 下表给出了相对 http://store.company.com/dir/page.html 同源检测的示例: URL 结果 原因 http://store.company.com/dir2/other.html 成功 http://store.company.com/dir/inner/another.html 成功 https://store.company.com/secure.html 失败 不同协议 ( https和http ) http://store.company.com:81/dir/etc.html 失败 不同端口 ( 81和80) http://news.company.com/dir/other.html 失败 不同域名 ( news和store )<br /> 源的继承 data:URLs获得一个新的,空的安全上下文。 在页面中用 about:blank 或 javascript: URL 执行的脚本会继承打开该 URL

Django框架11 /同源、跨域

眉间皱痕 提交于 2019-12-01 17:26:38
目录 Django框架11 /同源、跨域 1.同源 2.CORS 2.1 简单请求 2.2 非简单请求 2.3 两种请求的处理 3.总结 --- 支持跨域,简单/复杂请求 练习代码 Django框架11 /同源、跨域 1.同源 1.同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现. 2.同源是指,域名,协议,端口相同 3.如果非同源,那么在请求数据时,浏览器会在控制台中报一个异常,提示拒绝访问。 2.CORS 1.实现CORS通信的关键是服务器。只要服务器实现了CORS接口,就可以跨源通信。 2.浏览器将CORS请求分成两类:简单请求(simple request)和非简单请求(not-so-simple request)。 2.1 简单请求 (1)请求方法是以下三种方法之一:(也就是说如果你的请求方法是什么put、delete等肯定是非简单请求) HEAD GET POST (2)HTTP的头信息不超出以下几种字段:(如果比这些请求头多,那么一定是非简单请求) Accept Accept-Language Content-Language Last-Event-ID Content-Type

同源策略

时光怂恿深爱的人放手 提交于 2019-12-01 12:52:13
同源政策 最初,它的含义是指,A 网页设置的 Cookie,B 网页不能打开,除非这两个网页“同源”。所谓“同源”指的是“三个相同”。 协议相同 域名相同 端口相同 同源政策的目的,是为了保证用户信息的安全,防止恶意的网站窃取数据。 目前,如果非同源,共有三种行为受到限制。 (1) 无法读取非同源网页的 Cookie、LocalStorage 和 IndexedDB。 (2) 无法接触非同源网页的 DOM。 (3) 无法向非同源地址发送 AJAX 请求(可以发送,但浏览器会拒绝接受响应)。 参考资料: 同源限制 来源: https://www.cnblogs.com/songsongblue/p/11687101.html

跨域问题的九种解决方法

﹥>﹥吖頭↗ 提交于 2019-12-01 07:14:06
什么是跨域?   跨域是由于浏览器的同源策略造成的,是浏览器施加的安全限制。 什么是同源策略?   同源策略是一种约定,是浏览器最核心最基本的安全功能,缺少同源策略,浏览器容易收到XSS、CSRF等攻击。   同源策略是:拥有相同的协议、域名、端口号的网址间才可以相互访问资源。   一个域的页面去访问另一个域的资源就形成了跨域。 解决跨域的方法:   注意:1.如果是协议和端口造成的跨域问题,前端无法处理;      2.是否跨域,仅仅通过URL的首部来判断,不会通过域名对应的IP地址是否相同来判断;      3.跨域并不是请求发不出去,而是请求发出去了,也正常返回结果了,但是结果被浏览器拦截了。 1.利用JSONP方式解决跨域   利用script标签没有跨域的限制,网页可以从其他来源动态的获取JSON数据,从而实现跨域。   JSONP跨域仅支持GET请求,一定要服务器支持才可以实现。   JSONP是非同源策略,AJAX属于同源策略。     来源: https://www.cnblogs.com/surui/p/11667111.html

你真的了解 Cookie 和 Session 吗?

天涯浪子 提交于 2019-11-30 19:07:10
你真的了解 Cookie 和 Session 吗? 我在做面试官的时候,曾经问过很多朋友这个问题: Cookie 和 Session 有什么区别呢?大部分的面试者应该都可以说上一两句,比如:什么是 Cookie?什么是 Session?两者的区别等。 但如果再往深入探讨的话,就慢慢有一些朋友不太了解了,谈起原理时就很少有朋友全部回答准确。今天和大家一起深入聊聊有关 Cookie 和 Session 的话题 。 第一层楼 什么是 Cookie 和 Session ?初级程序员高频面试题。 什么是 Cookie HTTP Cookie(也叫 Web Cookie或浏览器 Cookie)是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。通常,它用于告知服务端两个请求是否来自同一浏览器,如保持用户的登录状态。Cookie 使基于无状态的 HTTP 协议记录稳定的状态信息成为了可能。 Cookie 主要用于以下三个方面: 会话状态管理(如用户登录状态、购物车、游戏分数或其它需要记录的信息) 个性化设置(如用户自定义设置、主题等) 浏览器行为跟踪(如跟踪分析用户行为等) 什么是 Session Session 代表着服务器和客户端一次会话的过程。Session 对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的

同源策略

生来就可爱ヽ(ⅴ<●) 提交于 2019-11-30 16:18:38
摘自百度 同源策略是,所有支持JavaScript的浏览器都遵循的一种策略。 所谓的同源就是:协议 端口 域名 相等。 只要满足以上的三个属性相同,即认为两个页面是来自同一个源的。 栗子: 当一个浏览器打开两个tab页面,百度和谷歌。当浏览器的百度页面zhixiang执行一个脚本的时候,只有脚本和百度同源才会执行。 如果非同源,浏览器会拒绝执行并在控制台爆出一个异常。 同源策略是浏览器的行为,避免浏览器被js请求回来的数据污染。拦截的是客户端请求回来的非同源数据。    来源: https://www.cnblogs.com/bowenqianngzhibushiwo/p/11604009.html

详解浏览器跨域

被刻印的时光 ゝ 提交于 2019-11-30 03:30:03
一、什么是跨域? JavaScript出于 安全 方面的考虑做的 同源 策略的 限制 ,不允许 跨域 访问其他资源。通常跨域请求成功后,浏览器会拒绝响应服务器端返回的结果。 1.出于哪些方面的安全考虑? 同源政策的目的是为了防止恶意网站窃取用户数据信息冒充用户做一些操作。同源限制只是提高攻击成本。如果没有JavaScript同源限制: (1)CSRF攻击 (2)XSS攻击 2.什么是同源? 域名、协议、端口均相同。举例来说, http://www.example.com/dir/page.html 这个网址,协议是 http:// ,域名是 www.example.com ,端口是 80 (默认端口可以省略) 3.做了哪些限制? (1)Window对象之间的跨源通信:无法读取Cookie( cookie是只会区分域名,不会区分端口的,所以在处理cookie 的时候必须首先你自己为cookie加上端口的标示以便区分。这里要感谢评论区指正的道友 )、LocalStorage 、IndexDB 和获取DOM,但通过以下标签可以跨域访问资源: <img src="URL"> <link href="URL"> <script src="URL"> <iframe src="URL"> <form action="URL" method="get/post"> First name:

js之跨域

时光总嘲笑我的痴心妄想 提交于 2019-11-30 02:17:37
什么是跨域? 协议+域名+端口 跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,这里跨域是广义的。 什么是同源策略? 同源策略/SOP(Same origin policy)是一种约定,由Netscape公司1995年引入浏览器,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,浏览器很容易受到XSS、CSFR等攻击。所谓同源是指"协议+域名+端口"三者相同,即便两个不同的域名指向同一个ip地址,也非同源。 同源策略限制以下几种行为: 1.) Cookie、LocalStorage 和 IndexDB 无法读取 2.) DOM 和 Js对象无法获得 3.) AJAX 请求不能发送 跨域解决方案 1、 通过jsonp跨域 2、 document.domain + iframe跨域 3、 location.hash + iframe 4、 window.name + iframe跨域 5、 postMessage跨域 6、 跨域资源共享(CORS) 7、 nginx代理跨域 8、 nodejs中间件代理跨域 9、 WebSocket协议跨域 方法一:jsonp函数 服务端 protected void retJSON(){ string callback = Request.QueryString["jsoncallback"]; string result =