关于JSONP与HTTPS结合应用:实现跨域通信的安全保障
一、引言
随着互联网的快速发展,跨域通信已成为现代Web应用的重要组成部分。
由于浏览器的同源策略限制,跨域通信一直面临诸多挑战。
为了解决这个问题,JSONP(JSON with Padding)和HTTPS协议应运而生。
本文将详细介绍JSONP与HTTPS的结合应用,并分析其如何为跨域通信提供安全保障。
二、JSONP概述
JSONP是一种跨域通信的技术,通过允许网页在请求另一个域名下的数据时,将数据嵌入到`
angularjs get,post,jsonp怎么实现跨域请求
JSONP的原理是通过<script>标签发起一个GET请求来取代XHR请求。
JSONP生成一个<script>标签并插到DOM中,然后浏览器会接管并向src属性所指向的地址发送请求。
当服务器返回请求时,响应结果会被包装成一个JavaScript函数,并由该请求所对应的回调函数调用。
AngularJS在$http服务中提供了一个JSONP辅助函数。
通过$http服务的jsonp方法可以发送请求,如下所示:$http () (function(data) {// 数据});
为什么已经用了jsonp了,还是存在跨域问题
使用jsonp解决跨域问题,不仅需要前端来改代码,还需要后端来设置
到底这个单点登录系统能有什么好处呢,为什么一点要实现单点登录?
单点登录SSO(Single Sign On)说得简单点就是在一个多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录,也就是用户的一次登录能得到其他所有系统的信任。
1)提高用户的效率。
用户不再被多次登录困扰,也不需要记住多个 ID 和密码。
另外,用户忘记密码并求助于支持人员的情况也会减少。
2)提高开发人员的效率。
SSO 为开发人员提供了一个通用的身份验证框架。
实际上,如果 SSO 机制是独立的,那么开发人员就完全不需要为身份验证操心。
他们可以假设,只要对应用程序的请求附带一个用户名,身份验证就已经完成了。
3)简化管理。
如果应用程序加入了单点登录协议,管理用户帐号的负担就会减轻。
简化的程度取决于应用程序,因为 SSO 只处理身份验证。
所以,应用程序可能仍然需要设置用户的属性(比如访问特权)。
实现方式我了解到的大概分三种:1. 以Cookie作为凭证媒介最简单的单点登录实现方式,是使用cookie作为媒介,存放用户凭证。
用户登录父应用之后,应用返回一个加密的cookie,当用户访问子应用的时候,携带上这个cookie,授权应用解密cookie并进行校验,校验通过则登录当前用户。
2. 通过JSONP实现对于跨域问题,可以使用JSONP实现。
用户在父应用中登录后,跟Session匹配的Cookie会存到客户端中,当用户需要登录子应用的时候,授权应用访问父应用提供的JSONP接口,并在请求中带上父应用域名下的Cookie,父应用接收到请求,验证用户的登录状态,返回加密的信息,子应用通过解析返回来的加密信息来验证用户,如果通过验证则登录用户。
3. 通过页面重定向的方式最后一种介绍的方式,是通过父应用和子应用来回重定向中进行通信,实现信息的安全传递。
父应用提供一个GET方式的登录接口,用户通过子应用重定向连接的方式访问这个接口,如果用户还没有登录,则返回一个的登录页面,用户输入账号密码进行登录。
如果用户已经登录了,则生成加密的Token,并且重定向到子应用提供的验证Token的接口,通过解密和校验之后,子应用登录当前用户。