JQuery安全分析
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安全分析的更多相关文章
- 转载 +function ($) { "use strict";}(window.jQuery);全面分析
转载 https://www.cnblogs.com/cndotabestdota/p/5664112.html +function ($) { "use strict";}(wi ...
- jQuery框架分析第一章: 第一个匿名函数
我的jQuery版本为1.7* 这个版本代码比之前的版本优化了很多,结构也清晰了不少,就用最新的吧. 打开jQuery源代码 首先你能看到所有代码被一个 (function(window,undefi ...
- jQuery构造函数分析
在我的上一篇文章里面 阐述了jQuery的大致框架,知道了所有代码都是写在了一个自调用匿名函数里面,并且传入了window对象,源码是这样的: (function( window, undefined ...
- jQuery.extend({...})分析
作者:zccst 看一下是如何写的 jQuery.extend({ prop:"" method:function(){} }); 可以看出,这些方法是jQuery的静态属性和方法 ...
- +function ($) { "use strict";}(window.jQuery);全面分析
+function ($) { "use strict"; }(window.jQuery); 怎么理解? 匿名函数闭包 我们先来理一理函数表达式和函数声明的区别 函数表达式: 函 ...
- 三元表达式之理解/jquery源代码分析之$.inArray实现
每次看到三元表达式就会惶惶然分不清怎样读,正如语文中的断句一样,jquery源代码中的三元表达式更是不知怎样断句. 附jquery中的inArray实现. 大家熟悉jquery的应该都不陌生inArr ...
- JQuery Sizzle引擎源代码分析
最近在拜读艾伦在慕课网上写的JQuery课程,感觉在国内对JQuery代码分析透彻的人没几个能比得过艾伦.有没有吹牛?是不是我说大话了? 什么是Sizzle引擎? 我们经常使用JQuery的选择器查询 ...
- jQuery源码解读-事件分析
最原始的事件注册 addEventListener方法大家应该都很熟悉,它是Html元素注册事件最原始的方法.先看下addEventListener方法签名: element.addEventList ...
- JQuery 支持 hide 和 show 事件的方法与分析
问题提出 JQuery不支持hide和show作为事件形式出现, 实际上这两个仅仅是JQuery对象的一个方法(fn): 有一类UI交互需求,根据一个DOM对象的或者显示对附属的DOM对象做相同操作 ...
随机推荐
- 《C和指针》 读书笔记 -- 第10章 结构和联合
1.聚合数据类型能够同时存储超过一个的单独数据,c提供了两种类型的聚合数据类型,数组和结构. 2.[1] struct SIMPLE { int a; }; struct SIMPLE x; [2] ...
- C++ list 类学习笔记
双向循环链表list list是双向循环链表,,每一个元素都知道前面一个元素和后面一个元素.在STL中,list和vector一样,是两个常被使用的容器.和vector不一样的是,list不支持对元素 ...
- 《WPF程序设计指南》读书笔记——第5章 Stack与Wrap
1.StackPanel面板 using System; using System.Windows; using System.Windows.Input; using System.Windows. ...
- 1020. Tree Traversals (序列建树)
Suppose that all the keys in a binary tree are distinct positive integers. Given the postorder and i ...
- 数据结构二叉树的递归与非递归遍历之java,javascript,php实现可编译(1)java
前一段时间,学习数据结构的各种算法,概念不难理解,只是被C++的指针给弄的犯糊涂,于是用java,web,javascript,分别去实现数据结构的各种算法. 二叉树的遍历,本分享只是以二叉树中的先序 ...
- vi使用教程
Vi有3种模式: 命令模式——命令操作 插入模式——进入vi之后,输入i/a/o,按Esc键,进入命令模式 编辑模式——:set nu, 以回车结束 1.插入 a - 光标后插入 A - 本行末尾插入 ...
- 软件测试 -- 软件缺陷记录的5C原则
Correct(准确):每个组成部分的描述准确,不会引起误解: Clear(清晰):每个组成部分的描述清晰,易于理解: Concise(简洁):只包含必不可少的信息,不包括任何多余的内容: Compl ...
- POJ 2411 压缩状态DP
这个题目非常赞! 给定一个矩形,要求用1*2 的格子进行覆盖,有多少种覆盖方法呢? dp[i][j] 当状态为j,且第i行已经完全铺满的情况下的种类数有多少种?j中1表示占了,0表示没有被占. 很显然 ...
- 像Linq一样来使用Graphics
Linq的链式编程用起来总是那样畅快淋漓,可惜在C#中并不是每时每刻都能有这么畅快的感觉,其中使用Graphics的时候就是,每次用Graphics绘制大量图形时尤其如此.GDI+的API功能很强大, ...
- SAML - SSO(转)
http://baike.baidu.com/view/758527.htm?fr=aladdin SAML即安全断言标记语言,英文全称是Security Assertion Markup Langu ...