前言:
最近经常遇到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. leetcode 买卖股票问题

    leetcode121 Best Time to Buy and Sell Stock 说白了找到最大的两组数之差即可 class Solution { public: int maxProfit(v ...

  2. python_01

    测试工程师的短板,近二年的时间,python这门语言获得非同一般的美誉.在算法,测试,运维里火的不要不要的.本人学了将近一年的时间,总是林林散散的学,也没有规划的去分析和总结.希望能够帮我梳理一下这一 ...

  3. gggg

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  4. iOS .tbd

    http://stackoverflow.com/questions/31450690/why-xcode-7-shows-tbd-instead-of-dylib http://www.jiansh ...

  5. MYSQL HA 部署手册

    1 MySQL启用主主双写复制 1.1 卸载系统默认的数据库mariadb 安装mysql出现安装包不兼容问题,首先卸载掉系统自带mariadb 查看已经安装的mariadb rpm -qa|grep ...

  6. 【软件安装与环境配置】ubuntu16.04+caffe+nvidia+CUDA+cuDNN安装配置

    前言 博主想使用caffe框架进行深度学习相关网络的训练和测试,刚开始做,特此记录学习过程. 环境配置方面,博主以为最容易卡壳的是GPU的NVIDIA驱动的安装和CUDA的安装,前者尝试的都要吐了,可 ...

  7. PHP常用函数(一):数组常用函数

    1.list() list() 和 array() 一样,不是一个函数,而是一个语言结构,作用是为一组变量赋值.  PHP手册中的介绍 使用详情 <?php //假设现在想为$a $b $c三个 ...

  8. Oracle 批量增加 / 批量跟新

    在使用oracl过程中踩到好多坑,在此记录,也分享给大家. 第一:批量插入 代码一(在为明确表和字段的情况下,动态批量增加): @Insert("<script> " ...

  9. 6th week blog(1)

    1.CSS单位 px:px就是pixel的缩写,pixel即像素,为绝对单位,页面按精确像素展示 em:相对单位,基准点为父节点字体的大小,如果自身定义了font-size按自身来计算(浏览器默认字体 ...

  10. 我的代码-date

    # coding: utf-8 # In[24]: import timeimport datetimelocaltime = time.asctime( time.localtime(time.ti ...