JSON 知识量:10 - 17 - 48
再好的技术如果用于做坏事,就会成为最坏的技术。JSON本身不会构成什么威胁,但它实际上会不会有威胁,也取决于如何使用它。下面是一个不友好的JOSN:
{ "message": "<div onmouseover=\"alert('wrong!')\">hover here.</div>" }
以上JSON中包含了一段不友好的JavaScript代码,运行时,每当鼠标移动到hover here上时,就会弹出“wrong!”。
要想阻止这种行为,可以采取一些手段使得消息中不包含HTML代码。也可以对消息中的HTML代码进行转码,例如将<div>转为<div>,这样就可以将HTML安全的插入页面中。
许多的攻击之所以会成功,都是由于网站在设计时没有对安全问题产生足够的重视,没有考虑过黑客会如何利用网站的漏洞进行攻击。在进行网站或系统架构设计时,应该建立足够的安全意识,添加额外的安全策略对威胁加以防范。
专业术语:
跨站请求伪造(CSRF):指利用站点对用户浏览器的信任进行的攻击。
顶层JSON数组:存在于JOSN名称-值对之外的位于文档最顶层的JSON数组。
注入攻击:依赖于将数据注入到Web应用程序以方便恶意数据执行或编译的攻击。
JSON跨站脚本攻击:通过截取或将站点中所使用的第三方代码更换为恶意脚本,来对站点进行的一种注入攻击。
重要概念:
JSON本身不构成什么威胁,它只是文本。
处理JSON安全问题时,应注意以下几点:
1、不要使用顶级数组。顶级数组是合法的JavaScript脚本,它们可以用<script>标签链接并使用。
2、对于不想公开的资源,仅允许使用HTTP协议的POST方法请求,而不是GET方法。GET方法可以通过URL来请求,甚至可以放在<script>标签中。
3、使用JSON.parse()函数来代替eval()函数。eval()函数会将传入的字符串编译并执行,更易被攻击。JSON.parse()函数仅解析JSON数据。
安全漏洞通常是安全意识淡薄导致的。
Copyright © 2017-Now pnotes.cn. All Rights Reserved.
编程学习笔记 保留所有权利
MARK:3.0.0.20240214.P35
From 2017.2.6