JQuery安全分析:

JQuery的风险均来源于对输入的数据没有进行有效性检验。客户端的Javascript需要检验:来源于服务器的数据、来源于当前页面的用户输入,服务器端需要检验来源于用户端的数据.

JQUERY的下列方法存在XSS的风险,在使用前应该对输入的内容进行编码或检查

.html(val)

$("#MyH").html("as>/" <img src=abc.jpg onerror='alert(0);'>alert('s');");

.append(val)

$("#MyH").append("<strong>Hello</strong><script>alert(3);");

. prepend(val)

prepend("<strong>Hello</strong><script>alert(3);");

. before(val)

//$("#MyH").before("<strong>Hello</strong><script>alert(3);");

.replaceWith(val)

//$("#MyH").replaceWith("<strong>Hello</strong><script>alert(3);");

. after(val)

$("#MyH").after("<strong>Hello</strong><script>alert(3);");

JQUERY在AJAX时如果设定返回结果为JSON,则有JSON投毒的风险

原因是:

JQuery处理JSON采用的是以下代码

如果服务器返回的数据为

string ms = "{/"total/":/"400/",/"results/":{/"Name/":/"[//aa///"{//u003c//u003e}

/",/"Age/":null,/"School/":/"acb;/",/"Address/":null,/"Memo/":/"/"}});alert(23);//";

则会出现JSON中毒

简单的Javascript测试 JSON中毒

var s=eval("({/"name/":/"sss/"});alert(23);({/"name/":/"sss/"})");

alert(s.name);

处理办法:使用JSON2.js的JSON解释方法代替JQUERY的该部份内容,或修改JQuery的eval部份,增加对JSON String的有效检验

JSON为什么是安全的

JSON采用了一系列的方法去检查eval执行的表达式是否是安全的,是否是只包含有JSON正确格式的数据,所以JSON2.JS来解析JSON串是安全的。

JQuery安全分析的更多相关文章

  1. 转载 +function ($) { "use strict";}(window.jQuery);全面分析

    转载 https://www.cnblogs.com/cndotabestdota/p/5664112.html +function ($) { "use strict";}(wi ...

  2. jQuery框架分析第一章: 第一个匿名函数

    我的jQuery版本为1.7* 这个版本代码比之前的版本优化了很多,结构也清晰了不少,就用最新的吧. 打开jQuery源代码 首先你能看到所有代码被一个 (function(window,undefi ...

  3. jQuery构造函数分析

    在我的上一篇文章里面 阐述了jQuery的大致框架,知道了所有代码都是写在了一个自调用匿名函数里面,并且传入了window对象,源码是这样的: (function( window, undefined ...

  4. jQuery.extend({...})分析

    作者:zccst 看一下是如何写的 jQuery.extend({ prop:"" method:function(){} }); 可以看出,这些方法是jQuery的静态属性和方法 ...

  5. +function ($) { "use strict";}(window.jQuery);全面分析

    +function ($) { "use strict"; }(window.jQuery); 怎么理解? 匿名函数闭包 我们先来理一理函数表达式和函数声明的区别 函数表达式: 函 ...

  6. 三元表达式之理解/jquery源代码分析之$.inArray实现

    每次看到三元表达式就会惶惶然分不清怎样读,正如语文中的断句一样,jquery源代码中的三元表达式更是不知怎样断句. 附jquery中的inArray实现. 大家熟悉jquery的应该都不陌生inArr ...

  7. JQuery Sizzle引擎源代码分析

    最近在拜读艾伦在慕课网上写的JQuery课程,感觉在国内对JQuery代码分析透彻的人没几个能比得过艾伦.有没有吹牛?是不是我说大话了? 什么是Sizzle引擎? 我们经常使用JQuery的选择器查询 ...

  8. jQuery源码解读-事件分析

    最原始的事件注册 addEventListener方法大家应该都很熟悉,它是Html元素注册事件最原始的方法.先看下addEventListener方法签名: element.addEventList ...

  9. JQuery 支持 hide 和 show 事件的方法与分析

    问题提出  JQuery不支持hide和show作为事件形式出现, 实际上这两个仅仅是JQuery对象的一个方法(fn): 有一类UI交互需求,根据一个DOM对象的或者显示对附属的DOM对象做相同操作 ...

随机推荐

  1. xml学习总结(三)

    复杂Schema 扩展包含简单内容的复杂类型 <?xml version="1.0" encoding="UTF-8"?> <xs:schem ...

  2. C++程序员笔试复习概要(一)

    第8章     类和对象的创建 [内容提要] 类和对象 构造函数和析构函数 对象数组与对象指针 静态成员 友元 静态函数 虚函数 [重点与难点] 8.1 类和对象 8.1.1 类的定义 类实质上是用户 ...

  3. 奖学金评分系统(系统分析与设计版与Delphi实现代码)

    一.系统规划 1.1 项目背景介绍 在奖学金评比过程中,学生综合测评是学校普遍采用的评比手段.对学生实施综合素质测评的目的在于正确评价学生的综合素质,为评奖学金提供依据,实现学生教育管理工作的标准化. ...

  4. Web 高性能开发汇总

    1. Http服务器: 让Windows Server 2008+IIS 7+ASP.NET支持10万个同时请求 大规模网站架构实战之体系结构(一) 大规模网站架构之WEB加速器SQUID(二) ii ...

  5. ASP.NET MVC的约定

    ASP.NET MVC 应用程序遵循以下3条约定: 所有的控制器的名称都以Controller结尾,如HomeController, AccountController 这些类默认在Controlle ...

  6. EXTJS 4.2 资料 控件之checkboxgroup的用法(静态数据)

    1.页面 1.1点击‘横幅’,需要动态显示隐藏文本框 { xtype: 'fieldset', title: '指定附加图&横幅设置', collapsible: true, items: [ ...

  7. 详解C#中的反射(转载)

    反射(Reflection) 2008年01月02日 星期三 11:21 两个现实中的例子: 1.B超:大家体检的时候大概都做过B超吧,B超可以透过肚皮探测到你内脏的生理情况.这是如何做到的呢?B超是 ...

  8. Oracle创建序列

    CREATE SEQUENCE IF NOT EXISTS seq_fund_execute

  9. 论文阅读(2014-2)----The YouTube Video Recommendation System

    这是谷歌youtube在2010的一篇文章,估计现在的思路有很多升级了,但是里面的知识点还是很不错的.主要讲youtube的个性化推荐思路.下面根据论文的结构我把我理解的思路整理如下,如果有问题,欢迎 ...

  10. SAX EntityResolver 的作用

    1.1 何为 EntityResolver : 官方解释: 如果SAX应用程序叙事实现自定义处理外部实体,则必须实现此接口, 并使用setEntityResolver方法向SAX 驱动器注册一个实例. ...