JSON中的安全问题

Web中使用JSON时最常见的两个安全问题:

1、跨站请求伪造;

即CSRF,是一种利用站点对用户浏览器信任发起攻击的方式。典型的就是JSON数组,更多信息请自行上网百度。

2、跨站脚本攻击。

是注入攻击的一种,在使用JSON时常见的安全漏洞通常发生在JavaScript从服务器获取到一段JSON字符串并将其转化为JavaScript对象时。

在定位JSON安全问题时,应该记住以下三件事情:

一、不要使用顶级数组。顶级数组是合法的JavaScript脚本,它们可以用<scirpt>标签链接并使用;

二、对于不想公开的资源,仅允许使用HTTP POST方法请求,而不是GET方法。GET方法可以通过URL来请求,甚至可以放在<script>标签中。

三、使用JSON.parse()来代替eval()。eval()函数会将传入的字符串编译并执行,这会让你的代码易被攻击。应仅使用JSON.parse()来解析JSON数据。

关于更多的JSON安全问题,上网查阅相信会得到跟更多。

时间: 2024-12-28 15:24:42

JSON中的安全问题的相关文章

js中eval详解,用Js的eval解析JSON中的注意点

先来说eval的用法,内容比较简单,熟悉的可以跳过eval函数接收一个参数s,如果s不是字符串,则直接返回s.否则执行s语句.如果s语句执行结果是一个值,则返回此值,否则返回undefined. 需要特别注意的是对象声明语法“{}”并不能返回一个值,需要用括号括起来才会返回值,简单示例如下: var s1='"a" + 2'; //表达式var s2='{a:2}'; //语句alert(eval(s1)); //->'a2'alert(eval(s2)); //->und

用Js的eval解析JSON中的注意点

分享:用Js的eval解析JSON中的注意点 在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery的each方法来遍历 用jquery解析JSON数据的方法,作为jquery异步请求的传输对 象,jquery请求后返回的结果是json对象,这里考虑的都是服务器 返回JSON形式的字符串的形式,对于利用JSONObject等插件封装的JSON对象,与此亦是大

在java中将各种类型数据转化为json和从json中取数据

首先,导入以下jar包 下面是各种类型转化为json和从json中取出数据的程序 package jsontest; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import net.sf.json.JSONArray; import net.sf.json.JSONObject; public class JsonMain { public

如何处理JSON中的特殊字符

JSON 是适用于 Ajax 应用程序的一种有效格式,原因是它使 JavaScript 对象和字符串值之间得以快速转换.由于 Ajax 应用程序非常适合将纯文本发送给服务器端程序并对应地接收纯文本,相比不能生成文本的 API,能生成文本的 API 自然更可取:而且,JSON 让您能够处理本地 JavaScript 对象,而无需为如何表示这些对象多费心思.静乐县隗承五金 XML 也可以提供文本方面的类似益处,但用于将 JavaScript 对象转换成 XML 的几个现有 API 没有 JSON A

如何获取和判断json中的boolean 值

其实我是明确知道返回来的数据是 boolean 类型的, 只是在做判断的时候 发现直接使用 if([responseObject objectForKey:@"success"]) 判断没有任何意义,因为我判断的是这是不是为真,换句话说,就是是不是非空, 靠当然非空啦,大不了返回一个false 但那个也是有值得,so ,我尝试使用改变数据类型接收, 当我用NSString * 接收时, 发生这种错误 [__NSCFBoolean isEqualToString:]: unrecogni

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

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

Java &quot;JSON中无分隔符日期字符串处理&quot;

Json 中日期类型数据处理,服务端传输的日期没有分隔符,一般格式就两种,[20151212121212]即yyyyMMddhhmmss和[121212]hhmmss import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Locale; public class test { public static void main(String[] arg

JSON中的日期格式化

Json字符串中的日期格式化函数 ConvertJsonDate: function (jd) { var d = new Date(parseInt(jd.replace("/Date(", "").replace(")/", ""), 10)); if (d.toString().split("-").length > 1) { return d; } var month = { "Ja

JSON中使用jsonmapper解析的代码和步骤 学习笔记

代码: using LitJson;using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Text;using System.Threading.Tasks; namespace JSON操作{ class Program { static void Main(string[] args) { //7.创建一个集合来储存我们遍历的三个对象并添加到这个集合中 List