关于安全性问题:(XSS,csrf,cors,jsonp,同源策略)

Ajax 是无需刷新页面就能从服务器获取数据的一种方法。它的核心对象是XHR,同源策略是ajax的一种约束,它为通信设置了相同的协议,相同的域名,相同的端口。为此,会访问不到之外的资源,因此采用几种方法可以解决这一问题,第一:跨源资源共享CORS;第二:JSONP和图像Ping,但是不如CORS稳妥。

对于CORS:整个cors通信过程是由浏览器自动完成的,关键在于服务器,只要服务器提供了cors接口,就可以跨源通信。对于简单请求,浏览器直接发出cors请求,即在头信息之中。增加一个origin字段;

如:GET/corsHTTP/1.1

Origin:http://api.bob.com  本次请求的跨源地址,服务器会根据该地址决定是否同意该请求。服务器会返回Access-Control-Allow-Origin该类型字段;

Host:api.alice.com

Accept-Language:en-US

Connection:keep-alive

User-Agent:Mozilla/5.0

与jsonp比较:jsonp只适用于get请求,但是它可以支持老式浏览器。而cors不支持老式浏览器,但是可以支持所有类型的HTTP请求。

对于JSONP:通过引入script标签,直接使用src属性引入外部的url。并对其设置cb函数。在资源加载进来的时候定义好一个函数并与cb函数一个名,并把返回的数据作为参数传入该函数,函数内进行一定的操作。

 

XSS与CSRF:

Csrf:跨站点请求伪造,未经授权系统有权访问某个资源的情况。为了保证通过XHR访问的URL安全,可以通过验证发送请求者是否有权限访问相应的资源。方法:每一次请求都要附带经过相应算法计算得到的验证码;要求以SSL连接来访问;

Xss:跨站脚本攻击,即恶意攻击者向web页面里插入恶意攻击脚本代码。解决方案:首先:对请求的数据进行转换和过滤,包含在客户端和服务器端的转换和过滤。通过将url,查询的关键字,http报头,post数据等可以设置规定的长度,采用适当的格式,过滤或忽略部分内容等等。其次可以采取同源策略实现安全;

关于安全性问题:(XSS,csrf,cors,jsonp,同源策略)的更多相关文章

  1. 深入理解OAuth2.0 XSS CSRF CORS 原理

    基于Token的WEB后台认证机制 http://www.cnblogs.com/xiekeli/p/5607107.html 深入理解OAuth2.0协议http://blog.csdn.net/s ...

  2. Angular jsonp 同源策略的问题

    引用:http://www.cnblogs.com/dengzy/p/5388357.html 说到AJAX就会不可避免的面临两个问题,第一个是AJAX以何种格式来交换数据?第二个是跨域的需求如何解决 ...

  3. Django 之Ajax&Json&CORS&同源策略&Jsonp用法

    什么是Json 定义: JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式.它基于 ECMAScript (w3c制定的js规范)的一个子集 ...

  4. JS实现的ajax和同源策略

    一.回顾jQuery实现的ajax 首先说一下ajax的优缺点 优点: AJAX使用Javascript技术向服务器发送异步请求: AJAX无须刷新整个页面: 因为服务器响应内容不再是整个页面,而是页 ...

  5. Django【第24篇】:JS实现的ajax和同源策略

    JS实现的ajax和同源策略 一.回顾jQuery实现的ajax 首先说一下ajax的优缺点 优点: AJAX使用Javascript技术向服务器发送异步请求: AJAX无须刷新整个页面: 因为服务器 ...

  6. 同源策略jsonp和cors

    同源策略: 同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响.可以说Web是构建在同源策略基础之上 ...

  7. 同源策略和Jsonp、CORS

    一.同源策略 同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响.可以说Web是构建在同源策略基础之 ...

  8. [CORS:跨域资源共享] 同源策略与JSONP

    Web API普遍采用面向资源的REST架构,将浏览器最终执行上下文的JavaScript应用Web API消费者的重要组成部分."同源策略"限制了JavaScript的跨站点调用 ...

  9. AJAX_违反了同源策略_就是"跨域"——jsonp 和 cors

    https 协议    默认端口号 443 http 协议    默认端口号 80 同源策略 由网景公司提出的——浏览器 的 为了浏览器安全而生 同源策略: 协议.域名.端口号    必须完全一致 违 ...

随机推荐

  1. javaScript数组去重方法

    在JAvascript平时项目开发中经常会用到数组去重的操作.这时候就要用到JS数组去重的方法了. demo1: 第一种:JS数组去重操作方法是利用遍历原数组,利用数组的indexOf()方法来来判断 ...

  2. Project 8:利用递归算法求最大值

    目标:用递归算法实现求一个数组中的最大元素. 样例输入 5 1 4 2 5 3 样例输出 5 #include <stdio.h> int max(int *,int); int main ...

  3. JMeter打开脚本失败 如何解决?

    最近有碰到JMeter打开之前的脚本,报错了,见下图: 后来发现这是因为之前保存脚本的 jmeter 和这次打开脚本的 jmeter 版本不一致(图一)或者版本一致而插件没有保持同步(图二)的原因: ...

  4. js模拟点击事件实现代码

    js模拟点击事件实现代码 类型:转载 时间:2012-11-06 在实际的应用开发中,我们会常常用到JS的模事件,比如说点击事件,举个简单的例子,点击表单外的"提交"按钮来提交表单 ...

  5. 如何使用phpstudy本地搭建多站点(每个站点对应不同的端口)

    到http://phpstudy.net/a.php/208.html下载phpstudy 1.装完phpstudy后,(假设安装在D盘,安装后开启服务) 在D:\phpStudy\WWW\路径下创建 ...

  6. 三种计算c#程序运行时间的方法

    三种计算c#程序运行时间的方法 第一种: 利用 System.DateTime.Now // example1: System.DateTime.Now method DateTime dt1 = S ...

  7. About Cheating and Plagiarism

    我先描述一下此次事件的具体经过.昨天3月15号的晚上十点,是第四次作业的deadline.在15号之前,只有五位同学提交了作业,而在临近deadline的这几个小时内密密麻麻地提交了二十多份作业.和第 ...

  8. 第六次meeting会议

    [Beta] 第六次Daily Scrum Meeting 一.本次会议为第六次meeting会议 二.时间:10:00AM-10:20AM 地点:禹州楼 三.会议站立式照片 四.今日任务安排 成员 ...

  9. 【beta】阶段 第六次 Scrum Meeting

    每日任务 1.本次会议为第六次 Meeting会议: 2.本次会议在周六上午大课间,在陆大楼召开,召开本次会议为15分钟. 一.今日站立式会议照片 二.每个人的工作 (有work item 的ID) ...

  10. 团队作业4——第一次项目冲刺(Alpha版本) 4.24

    团队作业4--第一次项目冲刺(Alpha版本) Day four: 会议照片 每日站立会议: 项目进展 今天是项目的Alpha敏捷冲刺的第三天,先大概整理下昨天已完成的任务以及今天计划完成的任务.今天 ...