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对象做相同操作 ...
随机推荐
- java 中的匿名内部类
转自http://www.cnblogs.com/nerxious/archive/2013/01/25/2876489.html 匿名内部类也就是没有名字的内部类 正因为没有名字,所以匿名内部类只能 ...
- 半小时学会上传本地项目到github
半小时学会上传本地项目到github 闲着无聊写给那些正在学习怎么上传本地项目到github的同学. 开始学习 一.创建github账号 好吧,这步多余了. 二.创建个人仓库 三.配置SSH keys ...
- python学习笔记2(变量)
变量是只不过保留的内存位置用来存储值,这意味着,当创建一个变量,那么它在内存中保留一些空间. Python是弱类型,无需明确指定变量类型,赋值的同时会自动声明类型. x = 1 y = 2.0 nam ...
- php实现调用微信上传照片然后保存至服务器与数据库
<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script> <s ...
- SQLSERVER数据库管理数据库原理
数据库的存储结构: 1.逻辑存储结构:是指数据库有那些性质的信息组成,即一个数据库由若干用户可视的各种数据库对象构成,如:表,视图,索引,存储过程等 2.物理存储结构:表现为存储数据的各类操作系 ...
- 常用脚本语言Perl,Python,Ruby,Javascript一 Perl,Python,Ruby,Javascript
常用脚本语言Perl,Python,Ruby,Javascript一 Perl,Python,Ruby,Javascript Javascript现阶段还不适合用来做独立开发,它的天下还是在web应用 ...
- [转载]c# winform 获取当前程序运行根目录
// 获取程序的基目录. System.AppDomain.CurrentDomain.BaseDirectory // 获取模块的完整路径. System.Diagnostics.Process.G ...
- datagridview 右键选中行 并弹出菜单
private void dataGridView_OLUsers_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e) { i ...
- PAT-乙级-1017. A除以B (20)
1017. A除以B (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 本题要求计算A/B,其中A是不超过 ...
- 深入理解SQL注入绕过WAF与过滤机制
知己知彼,百战不殆 --孙子兵法 [目录] 0x0 前言 0x1 WAF的常见特征 0x2 绕过WAF的方法 0x3 SQLi Filter的实现及Evasion 0x4 延伸及测试向量示例 0x5 ...