使用安全json parser防止json注入
[url]http://hi.baidu.com/aullik5/blog/item/8f81d73e1dfb40c47d1e71e4.html[/url]
今天在网上瞎逛又看到了一个不错的东西。

有些程序员如果没有很好的在javascript中解析json数据,往往会直接eval把json转成js对象,这时候如果json的数据中包含了被注入的恶意数据,则可能导致代码注入的问题。

正确的做法是分割出json里包含的特殊字符,然后再解析为对象

[url]http://json.org/json2.js[/url] 中是通过正则来完成的。

// We split the second stage into 4 regexp operations in order to work around// crippling inefficiencies in IE's and Safari's regexp engines. First we// replace the JSON backslash pairs with '@' (a non-JSON character). Second, we// replace all simple value tokens with ']' characters. Third, we delete all// open brackets that follow a colon or comma or that begin the text. 

            if (/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@').replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']').replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) {

// In the third stage we use the eval function to compile the text into a// JavaScript structure. The '{' operator is subject to a syntactic ambiguity// in JavaScript: it can begin a block or an object literal. We wrap the text// in parens to eliminate the ambiguity.

                j = eval('(' + text + ')');

目前不少写的好的框架和js解析函数都取用了这种做法。

所以,以后千万别直接eval了。

使用安全json parser防止json注入相关推荐

  1. Json Parser Online - Json 在线解析工具 1

    Json Parser Online - Json 在线解析工具 1 http://json.parser.online.fr/ References https://yongqiang.blog.c ...

  2. retrofit2 发送json数据_SQLmap JSON 格式的数据注入

    现在越来越多的网站开始使用 RESTFUL 框架,数据传输使用 JSON,那么这种情况下我们如何使用 SQLmap 进行自动化注入呢? 能使用 * 指定注入点吗? 先说结论:对于 JSON 数据的 S ...

  3. sqlmap自动扫描注入点_SQLmap JSON 格式的数据注入

    现在越来越多的网站开始使用 RESTFUL 框架,数据传输使用 JSON,那么这种情况下我们如何使用 SQLmap 进行自动化注入呢? 能使用 * 指定注入点吗? 先说结论:对于 JSON 数据的 S ...

  4. json.parser性能_Jackson JSON Java Parser API示例教程

    json.parser性能 Jackson JSON Java Parser is very popular and used in Spring framework too. Java JSON P ...

  5. IDEA插件之Json Parser

    1. 基本信息 描述:用于验证和格式化 JSON 字符串 评分:4.9 | 下载:366,130 | 最新版本:1.5 Plugin地址:Json Parser - IntelliJ IDEs Plu ...

  6. idea之json格式化插件Json Parser

    idea之json格式化插件Json Parser 安装插件 安装后重启idea 使用插件 Json Parser 为啥要用Json Parser,别问你也可以不用,废话不说,自己品! 安装插件 安装 ...

  7. json在线解析工具json formatter and json parser online

    json在线解析工具json formatter and json parser online, 推荐工具http://www.bestjson.com

  8. android json mysql_Android通过json向MySQL中读写数据的方法详解【写入篇】

    本文实例讲述了Android通过json向MySQL中写入数据的方法.,具体如下: 先说一下如何通过json将Android程序中的数据上传到MySQL中: 首先定义一个类JSONParser.Jav ...

  9. JSON字符串与JSON对象的区别

    JSON JavaScript Object Notation是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式. json可以以数组传递,也可以以对象传递. 在数据传输流 ...

  10. php json.parse,JSON.parse()与JSON.stringify()和eval()使用方法详解

    这次给大家带来JSON.parse()与JSON.stringify()和eval()使用方法详解,JSON.parse()与JSON.stringify()和eval()使用的注意事项有哪些,下面就 ...

最新文章

  1. linux zipinfo 命令详解
  2. Nginx-从零开始使用nginx实现反向代理及负载均衡
  3. Python 3.5将支持Async/Await异步编程
  4. 高情商的孩子是这样的
  5. struts2通过基于XML的配置实现校验没有提示信息
  6. 05 MapReduce应用案例01
  7. 风客科技网管培训资料
  8. vim Ctrl+S锁定屏幕
  9. Go的反射是如何获取结构体成员信息的?
  10. san分布式共享文件系统_基于SAN存储共享卷实现openstack高可用的方法与流程
  11. 裴蜀(贝祖)定理及其证明
  12. SqlServer触发器常用语法AFTER、INSTEAD OF及其详解
  13. 《软件工程》课程:期末复习提纲(超详细课本内容)
  14. 2022电大国家开放大学网上形考任务-劳动与社会保障法非免费(非答案)
  15. java 求tan角度求值_知道sin、cos、tan的角度如何求值,不用计算器
  16. Excel2003和Excel2007的区别
  17. 微信号名称乱码什么情况_2020最火微信号,微信号改成什么比较好?
  18. 确实实惠:海淘买鞋的经历:6PM +笨鸟海淘转运(单号: CN150625417260)
  19. Lumaqq移植到Android-登录篇
  20. ubuntukylin-16.04安装

热门文章

  1. 2019年贝莱德13亿美元收购另类投资服务商eFront
  2. 如何构建一个可用的企业级API网关?
  3. “超级买手”阿里:一年投资65笔,涉及金额高达5400亿
  4. 云上资源编排1.0到2.0的设计开发思考(含招聘)
  5. linux用户名不在sudoers,如何修复“用户名不在sudoers文件中。这个事件将报告“在Ubuntu...
  6. java redis高并发demo_java使用redis模拟高并发秒杀活动
  7. 【疾病分类】基于matlab LBP果实病害检测分类【含Matlab源码 1714期】
  8. 【元胞自动机】基于matlab元胞自动机短消息网络病毒传播仿真【含Matlab源码 1289期】
  9. SPSS调节效应检验(图文+数据集)【SPSS 045期】
  10. linux mint 引导类型,LinuxMint18配置Grub2默认启动操作系统