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对象做相同操作 ...
随机推荐
- 利用rlwrap配置linux下oracle sqlplus 历史记录回调
.下载rlwrap wget http://utopia.knoware.nl/~hlub/uck/rlwrap/rlwrap-0.42.tar.gz .解压 tar -xvzf rlwrap-0.4 ...
- python编程语言缩进格式
python的缩进格式是python语法中最特别的一点,很多已经习惯了其他语言的朋友再去学python的话,开始会觉的不太 习惯. 怎么看怎么都觉的别扭,也有一些朋友因为这个特别的格式与python失 ...
- Kinetic使用注意点--lable
new Lable(config) 参数: config:包含所有配置项的对象. { x: "横坐标", y: "纵坐标", width: "宽度&q ...
- MVC中Controller和Action讲解上篇
一般我们用mvc开发程序时一般需要三个步骤, 创建模型.创建控制器.创建视图 之前开发程序都是按照这样的步骤来开发的,也没有想过mvc的原理,比如route是怎么找到controller的,contr ...
- resin access.log format配置详解
The access log formatting variables follow the Apache variables: %b result content length %D tim ...
- 隐藏和显示效果js动画
<div id='ctt' style='margin-left: 50px; color: white'> <input type="button ...
- (转载)shell日志分析常用命令
shell日志分析常用命令总结 时间:2016-03-09 15:55:29来源:网络 导读:shell日志分析的常用命令,用于日志分析的shell脚本,统计日志中百度蜘蛛的抓取量.抓取最多的页面.抓 ...
- 3.3 spring-meta子元素的使用与解析
1. meta元素的使用 在解析元数据的分析之前,我们先回顾一下 meta属性的使用: <bean id="car" class="test.CarFactoryB ...
- HTML5的本地存储 LocalStorage
localStorage顾名思义,就是本地存储的意思,在以前很长一段时间,要想在客户端存 储一些配置及登录信息等数据都只能通过COOKIE或flash的方式,如今html5来临,也 带来了更强大的本地 ...
- [转载]JQuery的Ajax跨域请求的解决方案
今天在项目中需要做远程数据加载并渲染页面,直到开发阶段才意识到ajax跨域请求的问题,隐约记得Jquery有提过一个ajax跨域请求的解决方式,于是即刻翻出Jquery的API出来研究,发现JQuer ...