前言:
最近经常遇到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. shell 删除颜色代码

    sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g"

  2. RabbitMQ和kafka从几个角度简单的对比

    业界对于消息的传递有多种方案和产品, 本文就比较有代表性的两个MQ(rabbitMQ,kafka)进行阐述和做简单的对比 在应用场景方面,RabbitMQ,遵循AMQP协议,由内在高并发的erlann ...

  3. Kylin引入Spark引擎

    1 引入Spark引擎 Kylin v2开始引入了Spark引擎,可以在构建Cube步骤中替换MapReduce. 关于配置spark引擎的文档,下面给出官方链接以便查阅:http://kylin.a ...

  4. seriviceWorker 小结

    serviceWorker 的状态 install → activate. 1.初进页面,此前未加载过serviceWorker,直接进入install状态,随后进入activate状态,但是此时se ...

  5. java 使用post 请求php接口

    遇到问题:php无法正常接收post参数,原因php只有当content-type为content-type为application/x-www-data-urlencoded和multipart/f ...

  6. 利用Python中的for循环和while循环,打印各种方向的九九乘法表。

    哈喽大家好,今天,可乐来给大家分享一下Python中用for循环和while循环打印九九乘法表的操作.由于本人也是刚刚接触Python不长时间,代码也是自己编写的,所以有什么不足之处还请大家多多指教. ...

  7. Mac os x 系统的发展史

    ·Mac OS 9:发布时间:1999年 于1999年发布的Mac OS 9操作系统(图片来自互联网) 在OS X之前,1999年发布的Mac OS 9看起来就是一个普通的桌面操作系统.并且现在已经被 ...

  8. openWRT报错

    1.报错内容 /usr/lib/lua/luci/dispatcher.lua:533: bad argument #1 to 'pairs' (table expected, got nil)sta ...

  9. JNI学习笔记_Java调用C —— 非Android中使用的方法

    一.学习笔记 1.java源码中的JNI函数本机方法声明必须使用native修饰. 2.相对反编译 Java 的 class 字节码文件来说,反汇编.so动态库来分析程序的逻辑要复杂得多,为了应用的安 ...

  10. Technical

    CAN FD (CAN with Flexible Data-Rate) is an extension to the original CAN bus protocol specified in I ...