黑客24小时在线接单网站

联系黑客,怎么找黑客,24小时在线黑客,黑客在线QQ,找黑客

jsonxss转义(json xss)

本文目录一览:

jsonobject 为什么会有转义字符

一:解析普通json

1:不带转化字符

格式{"type":"ONLINE_SHIPS","message":{"currentTime":1400077615368,"direction":0,"id":1,"latitude":29.5506,"longitude":106.6466}}

JSONObject jsonObject = new JSONObject(jsonstr).getJSONObject("message");

System.out.println("currentTime:"+jsonObject.get("currentTime"));

System.out.println("direction:"+jsonObject.get("direction"));

System.out.println("latitude:"+jsonObject.get("latitude"));

System.out.println("longitude:"+jsonObject.get("longitude"));

jsonarray

JSONObject jo = ja.getJSONArray("cargoList").getJSONObject(0);

2:带转义字符的json格式

{"type":"ONLINE_SHIPS","message":"{\"currentTime\":1400077615368,\"direction\":0,\"id\":1,\"latitude\":29.5506,\"longitude\":106.6466}"}

其实也很简单,先把它转化成字符串就可以了

JSONObject jsonObject = new JSONObject(jsonstr);

//先通过字符串的方式得到,转义字符自然会被转化掉

String jsonstrtemp = jsonObject.getString("message");

System.out.println("message:"+jsonstrtemp);

jsonObject = new JSONObject(jsonstrtemp);

System.out.println("currentTime:"+jsonObject.get("currentTime"));

System.out.println("direction:"+jsonObject.get("direction"));

System.out.println("latitude:"+jsonObject.get("latitude"));

System.out.println("longitude:"+jsonObject.get("longitude"));

二:遍历Json对象

JSONObject ports = ja.getJSONObject("ports");

IteratorString keys = ports.keys();

while(keys.hasNext()){

String key=keys.next();

String value = ports.getString(key);

}

三:使用Gjson,json与对象相互转化

使用Gson轻松将java对象转化为json格式

String json = gson.toJson(Object);//得到json形式的字符串

User user = gson.fromJson(json,User.class);//得到对象

转化成list

import java.util.List;

import com.google.gson.Gson;

import com.google.gson.reflect.TypeToken;

import com.lc.function.Action;

import com.lc.models.Groups;

public class MapSearch {

private void ParseData(String _data)

{

Gson gson = new Gson();

ListGroups ps = gson.fromJson(_data, new TypeTokenListGroups(){}.getType());

System.out.println(ps.get(0).getGroup_name());

}

}

几种极其隐蔽的XSS注入的防护

XSS注入的本质

就是: 某网页中根据用户的输入, 不期待地生成了可执行的js代码, 并且js得到了浏览器的执行. 意思是说, 发给浏览器的字符串中, 包含了一段非法的js代码, 而这段代码跟用户的输入有关.

常见的XSS注入防护, 可以通过简单的 htmlspecialchars(转义HTML特殊字符), strip_tags(清除HTML标签) 来解决, 但是, 还有一些隐蔽的XSS注入不能通过这两个方法来解决, 而且, 有时业务需要不允许清除HTML标签和特殊字符. 下面列举几种隐蔽的XSS注入方法:

IE6/7 UTF7 XSS 漏洞攻击

隐蔽指数: 5

伤害指数: 5

这个漏洞非常隐蔽, 因为它让出现漏洞的网页看起来只有英文字母(ASCII字符), 并没有非法字符, htmlspecialchars 和 strip_tags 函数对这种攻击没有作用. 不过, 这个攻击只对 IE6/IE7 起作用, 从 IE8 起微软已经修复了. 你可以把下面这段代码保存到一个文本文件中(前面不要有空格和换行), 然后用 IE6 打开试试(没有恶意代码, 只是一个演示):

+/v8 +ADw-script+AD4-alert(document.location)+ADw-/script+AD4-

最容易中招的就是 JSONP 的应用了, 解决方法是把非字母和数字下划线的字符全部过滤掉. 还有一种方法是在网页开始输出空格或者换行, 这样, UTF7-XSS 就不能起作用了.

因为只对非常老版本的 IE6/IE7 造成伤害, 对 Firefox/Chrome 没有伤害, 所以伤害指数只能给 4 颗星.

参考资料:UTF7-XSS不正确地拼接 JavaScript/JSON 代码段

隐蔽指数: 5

伤害指数: 5

Web 前端程序员经常在 PHP 代码或者某些模板语言中, 动态地生成一些 JavaScript 代码片段, 例如最常见的:

var a = '?php echo htmlspecialchars($name); ?';

不想, $name 是通过用户输入的, 当用户输入a’; alert(1); 时, 就形成了非法的JavaScript 代码, 也就是XSS 注入了.

只需要把上面的代码改成:

var a = ?php echo json_encode($name); ?;

去掉单引号, 利用 PHP 的 json_encode() 函数来生成表示字符串的字符串. 这样做是因为,

最好用 json_encode() 函数来生成所有的 JSON 串, 而不要试图自己去拼接

. 程序员总是犯这样的错误: 自己去解析 HTTP 报文, 而不是用现成的成熟的库来解析. 用 json_encode() 的好处还在于, 即使业务要求我要保留单引号时, XSS注入也可以避免.

隐蔽指数最高级, 伤害所有的通用浏览器

. 这种 XSS 注入方式具有非常重要的参考意义.

最后, 根据工作中的经验, 以及我自己和别人犯过的错, 我总结出一个定理: 没有一劳永逸的单一方法可以解决所有 XSS 注入问题.

有用的经验:输出 HTML 代码时 htmlspecialchars输出JavaScript 代码时 json_encode

输入过滤应该用于解决业务限制, 而不是用于解决 XSS 注入(与严进宽出的原则相悖, 所以本条值得讨论)讨论:上文提到的经验第3条, 是一种宽进严出的原则, 和严进宽出原则是相悖的. 其实, 我认为不应该把严进宽出作为一条伪真理, 好像除了它其它的说法都不对了似的. 宽进严出和严进宽出应该具有完全相等的地位, 根据实现的成本进行取舍.

例如, 用户的名字可以采用严进宽出原则, 不允许用户填写单引号, 大于号小于号等. 但是用户的签名呢? 难道就不能填单引号? 如果要走极端, 想找出一种银弹, 那么我能想到的就是对所有的输入一律进行htmlspecialchars 和 json_encode(且不说解决不了 utf7-xss).

json数据怎么加上转义字符

首先你的转义范围要先确定吧?

一般都是对中文、符号进行转义;

中文一般都是转成unicode;

如果数要转换成程序(JAVA)中直接使用的json字符串的话,一般都是在双引号前加\.

推荐给你一个json在线转义工具 网页链接 可以去看下。

json字符串中需要转义的字符有哪些

一:解析普通json

1:不带转化字符

格式{"type":"ONLINE_SHIPS","message":{"currentTime":1400077615368,"direction":0,"id":1,"latitude":29.5506,"longitude":106.6466}}

JSONObject jsonObject = new JSONObject(jsonstr).getJSONObject("message");

System.out.println("currentTime:"+jsonObject.get("currentTime"));

System.out.println("direction:"+jsonObject.get("direction"));

System.out.println("latitude:"+jsonObject.get("latitude"));

System.out.println("longitude:"+jsonObject.get("longitude"));

jsonarray

JSONObject jo = ja.getJSONArray("cargoList").getJSONObject(0);

2:带转义字符的json格式

{"type":"ONLINE_SHIPS","message":"{\"currentTime\":1400077615368,\"direction\":0,\"id\":1,\"latitude\":29.5506,\"longitude\":106.6466}"}

其实也很简单,先把它转化成字符串就可以了

JSONObject jsonObject = new JSONObject(jsonstr);

//先通过字符串的方式得到,转义字符自然会被转化掉

String jsonstrtemp = jsonObject.getString("message");

System.out.println("message:"+jsonstrtemp);

jsonObject = new JSONObject(jsonstrtemp);

System.out.println("currentTime:"+jsonObject.get("currentTime"));

System.out.println("direction:"+jsonObject.get("direction"));

System.out.println("latitude:"+jsonObject.get("latitude"));

System.out.println("longitude:"+jsonObject.get("longitude"));

二:遍历Json对象

JSONObject ports = ja.getJSONObject("ports");

IteratorString keys = ports.keys();

while(keys.hasNext()){

String key=keys.next();

String value = ports.getString(key);

}

三:使用Gjson,json与对象相互转化

使用Gson轻松将java对象转化为json格式

String json = gson.toJson(Object);//得到json形式的字符串

User user = gson.fromJson(json,User.class);//得到对象

转化成list

import java.util.List;

import com.google.gson.Gson;

import com.google.gson.reflect.TypeToken;

import com.lc.function.Action;

import com.lc.models.Groups;

public class MapSearch {

private void ParseData(String _data)

{

Gson gson = new Gson();

ListGroups ps = gson.fromJson(_data, new TypeTokenListGroups(){}.getType());

System.out.println(ps.get(0).getGroup_name());

}

}

  • 评论列表:
  •  黑客技术
     发布于 2022-07-13 23:12:12  回复该评论
  • 本文目录一览:1、jsonobject 为什么会有转义字符2、几种极其隐蔽的XSS注入的防护3、json数据怎么加上转义字符4、json字符串中需要转义的字符有哪些jsonobject 为什么会有转义字符一:解析普通json1:不带转化字符格式{"type
  •  黑客技术
     发布于 2022-07-14 04:47:24  回复该评论
  • ion"));System.out.println("latitude:"+jsonObject.get("latitude"));System.out.println("longitude:"+jsonObject.get("longitude"));jsonarray JSONObje

发表评论:

Powered By

Copyright Your WebSite.Some Rights Reserved.