Angularjs $http服务的两个request安全问题
今天为了hybrid app和后端restful服务的安全认证问题,又翻了一下$http的文档,$http服务文档页面两个安全问题是json和XSRF,JSON那个比较好理解,就不补充什么了,说说XSRF和CORS(跨域HTTP请求)的访问凭证问题
1、XSRF问题又叫CSRF问题跨站请求伪造,一般来讲实在cookie放一个Token,当提交post请求时取出token,把Token放到post的请求data或者header里面,一般Ajax请求会放在header里面,这样比较容易横向设置,这个token传到后端,再由后端取出来和后端session里面的数据做对比验证。因为AngularJS的$http发送请求,其数据都是传object或者自己组object,不像jQuery,直接取整个form的所有数据,而像有些框架的CSRF Token,hacking直接绑定model好像不太nice,所以设置XSRF Cookie Name的方式,$http会自己直接从Cookie里面去取这个token,放到header里面,这样就不用每次发送post请求时,自己去想法设法拿那个值了。
2、跨域HTTP请求(CORS)的访问控制问题,目前的Ajax XMLHTTPRequest标准已经允许一定条件下的跨域请求,hybrid的页面等资源都在apk里面,所以其数据请求肯定是跨域的,这个问题我说起来有点话长,我就不详述了,angularjs文档给了个链接:https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS#Requests_with_credentials ,目前一些比较激进的HTML5或者js书籍里面也有跨域请求的介绍,比如《html5程序设计》
Angularjs $http服务的两个request安全问题的更多相关文章
- aJax提交——服务端不能用request存储数据,session存数据客户端可以接收到
aJax提交与普通提交是两种迥异的提交方式,这两种提交方式决定了客户端与服务端交互时存储.传输数据的方式也不同. aJax提交,客户端的请求数据存储在data中,服务端用request.getPara ...
- Linux 服务管理两种方式service和systemctl
Linux 服务管理两种方式service和systemctl 1.service命令 service命令其实是去/etc/init.d目录下,去执行相关程序 # service命令启动redis脚本 ...
- linux安装mysql服务分两种安装方法:
linux安装mysql服务分两种安装方法: ①源码安装,优点是安装包比较小,只有十多M,缺点是安装依赖的库多,安装编译时间长,安装步骤复杂容易出错: ②使用官方编译好的二进制文件安装,优点是安装速度 ...
- Android四大组件之服务的两种启动方式详解
Service简单概述 Service(服务):是一个没有用户界面.可以在后台长期运行且可以执行操作的应用组件.服务可由其他应用组件启动(如:Activity.另一个service).此外,组件可以绑 ...
- highcharts .net导出服务 和 两种导出方式
highcharts 的Net导出服务 GitHub上整理的https://github.com/imclem/Highcharts-export-module-asp.net 引用两个程序集 sh ...
- 重启osd服务失败:Start request repeated too quickly
背景 OS:Ubuntu 16.04 修改了osd的一些配置,修改后,需要重启osd服务才能生效.第一次重启后,配置立刻生效.再改了一些配置,重启osd服务后,配置却不再生效了.ps命令查看进程,发现 ...
- Dynamics CRM 非声明验证方式下连接组织服务的两种方式的性能测试
今天看了勇哥的博文"http://luoyong0201.blog.163.com/blog/static/1129305201510153391392/",又认识到了一种新的连接 ...
- 三,memcached服务的两种访问方式
memcached有两种访问方式,分别是使用telnet访问和使用php访问. 1,使用telnet访问memcacehd 在命令提示行输入, (1)连接memcached指令:telnet 127. ...
- httpd 服务的两个节点的HA
实验目的是:实现两个节点的http和nfs服务的HA集群. 实现条件:准备两个节点.node1,node2作为HA1,HA2提供集群服务.在node1和node2分别按照httpd服务.挂载nfs服务 ...
随机推荐
- 【嵌入式开发】 嵌入式开发工具简介 (裸板调试示例 | 交叉工具链 | Makefile | 链接器脚本 | eclipse JLink 调试环境)
作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42239705 参考博客 : [嵌入式开发]嵌入式 开发环境 (远 ...
- Libgdx 1.6.1发布,跨平台游戏开发框架
Libgdx 1.6.1发布 [1.6.1] 英文原文:http://www.badlogicgames.com/wordpress/?p=3694 译文翻译:宋志辉 - Net.newServerS ...
- Linux0.11中对文本文件进行修改的策略
现在,假设 hello.txt 是硬盘上已有的一个文件,而且内容为 "hello, world" ,在文件的当前指针设置完毕后,我们来介绍 sys_read , sys_write ...
- 基于Struts+Hibernate开发过程中遇到的错误
1.import javax.servlet.http.HttpServletRequest 导入包出错 导入包出错,通常是包未引入,HttpServletRequest包是浏览器通过http发出的 ...
- H5学习之旅-H5的块标签的使用(9)
块元素的基本语法 1. Html块元素 ,块元素在开始时候通常以新行开始,比如h1,p,ul 2.内联元素,通常不会以新行开始,比如a,b,img 3.html的div元素,div也被称为块元素,其主 ...
- ceres-solver库编译说明
0. ceres-solver简介 Ceres Solver是一个C++环境下的非线性最小二乘问题的求解工具包,可用来建模并解决大型复杂的非线性最小二乘问题.这个工具包已经广泛被 ...
- Pollution over East China : Image of the Day
acquired October 16, 2002download large image (2 MB, JPEG, 6000x4600) acquired October 16, 2002downl ...
- iOS中UITableView分割线左侧顶齐
iOS 7开始UITableView的分割线不在从左侧边界开始了,而是默认空出了一段距离. 如果想要使用默认的分割线而且还要从左侧边界开始的话,有几种解决方式: 1.在tableView的代理方法中设 ...
- UML之部署图
部署图,英文名曰:Deployment Diagram,通常也称配置图,她是用来显示系统中软件和硬件的物理结构,从部署图中,我们可以了解到软件和硬件组件之间的物理关系以及处理节点的组件分布情况,使用部 ...
- Hadoop家族
现在Hadoop家族产品,已经达到20个了之多. 有必要对自己的知识做一个整理了,把产品和技术都串起来.不仅能加深印象,更可以对以后的技术方向,技术选型做好基础准备. 本文为"Hadoop家 ...