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对象做相同操作 ...
随机推荐
- 免信用卡注册美国App Store账号
对于一些应用国内的App Store无法下载让人很郁闷,而自己又有点轻微的强迫症.于是开始尝试免信用卡注册iCloud账号. Apple的官方网站上的教程,见http://support.apple. ...
- 使用OpenXml把Excel中的数据导出到DataSet中
public class OpenXmlHelper { /// <summary> /// 读取Excel数据到DataSet中,默认读取所有Sheet中的数据 /// </sum ...
- C语言获取网页源代码的学习所得
研究了一天这个玩意感觉挺有意思的. 刚开始是什么都不懂,现在写出来一段代码感觉略微有点意思了. 下面我分享一下学习过程和自己的理解. 整体过程大概就是如下情况: 先搜了一下别人的写这个东西的代码. 研 ...
- 使用Entity Framework时要注意的一些性能问题
http://diaosbook.com/Post/2012/12/9/performance-issue-in-select-one-or-few-colums-via-entityframewor ...
- Windows.Andy.Code4App.dll Win8.1/WP8.1通用类库@ver1.0.1
在上篇 Windows.Andy.Code4App.dll Win8.1/WP8.1通用类库@ver1.0.0 已经对Win8.1和WP8.1部分扩展通用类库做了说明,这篇继续对通用类库做扩展.写的 ...
- 【BZOJ 1010】 [HNOI2008]玩具装箱toy
Description P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中.P教授有编号为1... ...
- 在 Windows 8 或 8.1 上安装 .NET Framework 3.5 安装错误:0x800f0906、0x800F081F
昨天给一天新装Windows 8.1的PC装.NET Framework 3.5 发现联网速度很慢,并且在长久等待过后直接报错了:0x800f0906 经过Bing,发现了解决方案: 如果根据需要安装 ...
- uva 1103
弄懂题意后 其实就是一个dfs /************************************************************************* > Aut ...
- Akka学习——术语和概念
(大部分为翻译) Concurrency vs. Parallelism 并发 vs 并行 并发并不一定同时运行,比如使用时间片,使得两个任务交替执行.而并行是执两个任务真正的同时执行. ...
- 关于delete和delete[]
[精彩] 求问delete和delete[] 的区别??http://www.chinaunix.net/jh/23/311058.html C++告诉我们在回收用 new 分配的单个对象的内存空间的 ...