前言:
最近经常遇到json的事情,由于不懂所以系统的学习一下,记录此贴。
00x1:
JSON是啥?Java Objiect Notaton 谷歌翻译过来就是JS对象标记,是一种轻量级的数据交换格式
常用格式与python字典类似的键值对,相比于xml,json更小,更快,更容易解析,就是短,频,快。
JSON是独立于语言,与javascript的关系是使用js的语法进行数据描述对象,可以和js相互转换。
列如常见格式:
{
"site":
[
{"wode":"18cm"},{"url":"https://xxxx.com"},
{"nide":"1cm"},{"url":"http:////"},
]
}
js对象和json的相互转换:
JSON.string和JSON.parse()列如:
{"wode":"18cm","url":"https://xxxx.com","nide":"1cm","url":"http://ooo.com"}
转化为json对象:
var obj =JSON.parse({"wode":"18cm","url":"https://xxxx.com","nide":"1cm","url":"http://ooo.com"})
网页使用:
<p id="demo"></p>
<script>
var obj = JSON.parse({"wode":"18cm","url":"https://xxxx.com","nide":"1cm","url":"http://ooo.com"})
document.getElenmentById("demo").innerHTML = obj.wode+ ":" obj.url;
</script>
json有没有和字符串很像
00x3:
简单说一下json劫持:
json在传输中一般有两种的传输方式:xmlhttp传输(同域)和<script>传输(跨域)json 如果在进行跨域的情况下,一般都是前端定义,后端处理,然后再到前端调用,想象一下这个过程,如果调用的回调函数没有进行有效的安全保护,和csrf一样,利用对浏览器的信任,在受害者登陆网站拿到json返回的敏感信息了,然后点击了黑客构造恶意链接,恶意链接构造为把json数据发送到黑客服务器。简单的利用就是抓包找哪个包一般是数据交互的包返回了json敏感信息,然后访问该地址能不能访问,
给出代码直接弹出json,
<> function jsonp1(json){alert(JSON.stringify(jso))}</>
<src="json地址如:https://xxxx.com/1?callback=jsonp1>有局限性。
防御建议:
1.避免进行跨域的数据传输
2.在跨域过程中敏感数据加入对权限进行限制
2.1:referer的限制,添加token值,
3.在数据的头部加入while(1),避免数据被<script>标签应用,防止有特效的浏览器里面导致数据泄露。这个开始没有看懂是啥意思,百度一下没找到,我想了一下,while(1)的意思是无线循环。
00x4:
json注入:
说到json注入,我觉得要好好理解"标点符号:,不然注入是注入进去了但是没法执行,
json是根据引号("),冒号(:),逗号(,)和花括号:({)
闭合好前面的标点符号,然后注释掉后面的符号,和xss结合就是把xss代码注入进去然后在回调在前端后直接弹窗,json注入没啥,威胁,但是和xss结合起来就和xss一样了,不过利用条件有点难。
防御倒是很简单:
直接转义,编码,或者调用java-lib.jar组件来组建json数据。
from

json相关安全问题的更多相关文章

  1. json相关知识

    整理json相关知识: 1.for in 循环获取json中的键(key)与值(value) <!DOCTYPE html> <html lang="en"> ...

  2. plpgsql 数组、JSON相关

    Function Return Type Description Example Result array_append(anyarray,anyelement) anyarray append an ...

  3. 【接口测试】接口概念及Json相关

    一.接口相关概念 1.什么是接口? 接口:接口就是系统A程序中留的其他系统B访问系统A的接口(实际上是系统某个代码文件下某一个可访问的方法.).其他系统B可以调用这个方法a对系统A中的方法a进行访问从 ...

  4. 与JSON相关的问题

    1.JSON.stringify 与 JSON.parse 相关的问题 JSON.stringify 把字符串转化为字符串,JSON.parse把字符串转化为JSON格式 会出现的问题Unexpect ...

  5. vue.js的package.json相关问题解惑

    使用vue-cli创建vue.webpack项目,在项目中用到了iSlider移动端滑动插件,只在本地命令工具中npm install islider.js:提交之后,partner下载代码后一直运行 ...

  6. json相关类库,java对象与json相互转换

    有效选择七个关于Java的JSON开源类库 转自:http://www.open-open.com/lib/view/open1397870197828.html 翻译: (英语原文:http://w ...

  7. json相关,浏览器打开json格式的api接口时,进行格式化,chrome插件

    在chrome浏览器中安装Google jsonview插件能够自动格式化json格式的数据.

  8. JSON相关知识,转载:删除JSON中数组删除操作

    一:JSON是什么 JSONg格式:对象是一个无序的“名称/值”对的集合. 对象以括号开始,括号结束. 名称冒号分隔值. "名称/值"之间用逗号分隔 例: var people = ...

  9. json相关的一些用法

    一. json可以表示3种类型的值:   简单值 . 对象. 数组    表示对象时:>1. 没有变量的概念 ,所以不用申明变量                    >2. 没有末尾结束 ...

随机推荐

  1. centOS6.0虚拟机ip配置

    1.首先使用虚拟机安装好centOS6.0系统 2.虚拟机网络配置:(选择桥接模式) 3. 第一步:首先关闭防火墙 1.将防火服务从启动列表移除 #chkconfig --del iptables # ...

  2. select默认显示

    select默认显示第一个option,但大部分需求都是显示一个请选择,点击后在显示option的内容. 就像上图一样 但如果正常写的话会是像下面这样显示 请选择也会显示在下拉款里面,这样就很不友好 ...

  3. Spring事务管理transactionManager

    bean.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http ...

  4. Java中对List集合的常用操作

    目录: list中添加,获取,删除元素: list中是否包含某个元素: list中根据索引将元素数值改变(替换): list中查看(判断)元素的索引: 根据元素索引位置进行的判断: 利用list中索引 ...

  5. canvas 填充图片

    画一个更骚气的圆 https://juejin.im/post/5781d0495bbb500061fd683d

  6. 2015219付颖卓《网络对抗》EXP8 Web基础

    实验后回答问题 1.什么是表单 来自百度百科的官方定义:表单在网页中主要负责数据采集功能.一个表单有三个基本组成部分: 表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方 ...

  7. Hibernate5.3 + mysql8.0遇到的问题

    今天学习Hibernate看的是旧版本的视频Hibernate4.0版本 遇到几个新旧版本的区别. 1.方言,这个是因为SQL不是因为Hibernate 新版方言 2.将编译的类配置进congifur ...

  8. SpringBoot使用Druid数据库加密链接完整方案

    网上的坑 springboot 使用 Druid 数据库加密链接方案,不建议采用网上的一篇文章<springboot 结合 Druid 加密数据库密码遇到的坑!>介绍的方式来进行加密链接实 ...

  9. Python3数据类型及转换

    I. 数据类型 Python3将程序中的任何内容统称为对象(Object),基本的数据类型有数字和字符串等,也可以使用自定义的类(Classes)创建新的类型. Python3中有六个标准的数据类型: ...

  10. Google - Largest Sum Submatrix

    Given an NxN matrix of positive and negative integers, write code to find the submatrix with the lar ...