前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >网站安全防护 该如何对JSON做安全部署

网站安全防护 该如何对JSON做安全部署

原创
作者头像
技术分享达人
修改于 2019-11-04 03:49:48
修改于 2019-11-04 03:49:48
9790
举报
文章被收录于专栏:网站漏洞修补网站漏洞修补

网站,APP越来越多,安全问题也面临着严重挑战,我们SINE安全在对客户网站做安全服务的同时,发现很多客户网站都有使用JSON的交互方式来进行数据的传输,包括JSON调用,在使用JSON同时发生的安全问题以及如何做好JSON的网站安全防护,下面我们跟大家来分享一下.

首先我们要理解一下什么是JSON?

简单通俗的来说,JSON是JS对象的一个类,是一种很简单,很快捷的数据交换方式,在JS的写作规则方面基本上是一致的,用单独的格式来存储数据与展示数据,数据交互过程中很明了,很清晰,层次感较强,使得很多网站的开发人员来使用,促使网站更方便的与客户进行交互.

那么在实际的网站安全部署中,我们SINE安全老于跟大家讲过一个同源的策略,那老于为何老提这个策略是因为他牵扯到的网站安全很重要,有些客户网站使用的是jsonp,什么是同源策略,就是服务器IP,访问端口,网址,一定是一样的,简单讲就是www.baidu.com和他同源的只能是www.baidu.com,这就是jsonp为何与json的不同,很简单就能很轻易的分辨开。

什么是JSON了.JSONP是一种传输的数据协议,是在JSON之上的一种演变模式,大部分的浏览器都有同源策略的安全限制,像1.baidu.com跟2.baidu.com是没有办法通信的,但有一个好处就是可以调用同一个JS文件,不受同源安全策略的限制.

这里我们详细的讲解了什么是JSON,以及如何区分JSONP.那么使用了这些JS的传输方式会有哪些网站安全问题呢?目前我们SINE安全监测中心,以及实际渗透测试中发现都是CSRF劫持漏洞,有些金融网站,APP使用的 JSONP协议的时候,我们发现可以利用JSONP漏洞来获取机密的数据,包括一些可以越权,获取管理员权限才能看到的一些用户资料.造成该漏洞的主要原因是没有对来源referer进行安全检测,攻击者可以伪造任意的网站地址进行访问,请求JSONP数据,导致漏洞的发生.安全举例:个人的用户资料访问地址是yonghu.php,该PHP文件并没有对GET ,POST方式的请求进行来路拦截,导致可以随意写入其他的referer的网址,进行获取用户的个人资料,姓名,手机号等隐私的信息.

那如何做好JSON网站的安全防护呢? 首先要对该json网站漏洞进行修复,限制referer的来路网址,如果该网站域名没有在白名单中,那么就将用户的请求拦截掉,并返回拦截的错误提示.再一个可以使用token动态值来加强网站的安全,对于用户的每一次数据请求就行token比对与安全效验,这样就可以杜绝网站受到JSON漏洞攻击的影响.这只是网站安全部署的一部分,想要网站更安全,避免被攻击就得从多个方面进行安全设置与部署,如果您对自己的网站安全不知道该如何做的话,可以找专业的网站安全公司来进行防护,国内SINESAFE,启明星辰,绿盟,都是比较不错的网络安全公司,网站安全了,带来的也是客户的认可与口碑,重视网站安全,从一点点的细节,以及从自身网站做起.

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
02 . Go框架之Gin框架从入门到熟悉(数据解析和绑定,渲染,重定向,同步异步,中间件)
json,结构体,xml, yaml类似于java的properties,protobuf
iginkgo18
2020/11/04
1.5K0
02 . Go框架之Gin框架从入门到熟悉(数据解析和绑定,渲染,重定向,同步异步,中间件)
Gin-Web-Framework官方指南中文(下篇)
ShouldBind,ShouldBindJSON,ShouldBindXML,ShouldBindQuery,ShouldBindYAML
小诚信驿站
2019/10/31
2.4K0
Gin-Web-Framework官方指南中文(下篇)
Gin简单明了的教程---上
注意: 如果直接从github拉取失败,可以尝试更换代理,重新设置GOPROXY为国内代理源,然后再次尝试
大忽悠爱学习
2022/08/23
2.1K0
Gin简单明了的教程---上
01 . Go框架之Gin框架从入门到熟悉(路由和上传文件)
路由方法有GET, POST, PUT, PATCH, DELETE 和 OPTIONS,还有Any,可匹配以上任意类型的请求
iginkgo18
2020/10/30
1.5K0
go : gin 模型绑定与验证
将请求体绑定到类型中,请使用模型绑定。我们目前支持JSON、XML、YAML和标准表单值(foo=bar&boo=baz)的绑定
IT工作者
2022/07/23
3110
gin学习笔记
首先我们使用 go moudle来管理依赖, go版本要求在 1.11.1 及以上
用户2825413
2020/02/20
8120
从零开发区块链应用(七)--gin框架参数获取
本文作者:杰哥的技术杂货铺[1] 一、获取 query 参数 query 指的是 URL ? 后面携带的参数,例如 user/info?username=张三&password=123。获取请求的 q
Tiny熊
2022/02/22
1.1K0
从零开发区块链应用(七)--gin框架参数获取
漏洞挖掘之从开发者视角解析Gin框架中的逻辑漏洞与越权问题
以go的gin后端框架为例子,详细剖析了各种逻辑越权漏洞的成因已经对应防范手段,也为白帽子提供挖掘思路
亿人安全
2025/04/03
1520
漏洞挖掘之从开发者视角解析Gin框架中的逻辑漏洞与越权问题
Gin 路由注册与请求参数获取
RESTful(Representational State Transfer)代表的是一种基于HTTP协议设计的软件架构风格,它通常用于构建Web服务,是Representational State Transfer的简称,中文翻译为“表征状态转移”或“表现层状态转化”。RESTful架构的设计理念是将资源表示为URI(统一资源标识符),通过HTTP协议的GET、POST、PUT、DELETE等方法对资源进行操作。以下是RESTful架构的一些关键特点:
贾维斯Echo
2024/01/05
4440
Gin 路由注册与请求参数获取
Go: Gin框架中的binding验证器使用指南
在Gin框架中,数据绑定和验证是开发API时不可或缺的部分。Gin提供了强大的binding功能,允许我们将请求的数据绑定到结构体,并通过标签进行数据验证。本文将详细讲解如何在Gin中使用binding验证器进行数据验证,并提供代码示例帮助理解。
运维开发王义杰
2024/05/31
1.3K0
Go: Gin框架中的binding验证器使用指南
Gin 框架怎么使用自定义验证器?
阅读上面这段代码,我们定义一个 validator.Func 类型的函数变量,参数入参的类型是 validator.FieldLevel,返回结果是一个 bool 类型的变量。
frank.
2024/11/19
1470
Gin 框架怎么使用自定义验证器?
你会高效写http服务器吗?Gin实战演练
胖sir开始捣鼓http服务器,在寻求一种高效的解决方式且高性能的解决方式...
阿兵云原生
2023/02/16
2.1K0
Go语言(十三)Gin Web框架
Gin Web框架 简介 基于httprouter开发的web框架:https://github.com/gin-gonic/gin 提供Martini风格的API,但比Martini要快40倍 非常轻量级,使用简洁 Gin框架的安装与使用 安装: go get -u github.com/gin-gonic/gin 基本使用 import "github.com/gin-gonic/gin" func main() { r := gin.Default() r.GET("/ping", fu
alexhuiwang
2020/09/24
9050
Go语言(十三)Gin Web框架
Go:web框架 Gin 简介与实践
gin是用go语言开发的一个web框架,简单易用,是一个轻量级框架。Gin是Golang的一个web框架,封装优雅API友好,源码注释比较明确。借助Gin框架开发web服务,不仅可以省去很多常用的封装带来的时间,也有助于团队的编码风格和形成规范。
Freedom123
2024/03/29
6140
Go:web框架 Gin 简介与实践
6.Gin 路由详解 - GET POST 请求以及参数获取示例
为了能够更方便的获取请求相关参数,提高开发效率,我们可以基于请求的 Content-Type 识别请求数据类型并利用反射机制自动提取请求中 QueryString、form 表单、JSON、XML 等参数到结构体中。
Devops海洋的渔夫
2023/11/20
2.3K0
6.Gin 路由详解 - GET POST 请求以及参数获取示例
优化gin表单的错误提示信息
创建一个简单的登录例子,我们对username和password绑定了required标签,代表着请求login接口的参数中必须包含这两个字段。
编程黑洞
2023/03/06
1K0
Gin框架源码解析【建议收藏】
Gin框架是golang的一个常用的web框架,最近一个项目中需要使用到它,所以对这个框架进行了学习。gin包非常短小精悍,不过主要包含的路由,中间件,日志都有了。我们可以追着代码思考下,这个框架是如何一步一步过来的。
码农编程进阶笔记
2021/12/15
2.4K0
Gin框架源码解析【建议收藏】
go语言中gin的用法
在这个示例中,我们使用了gin框架来创建一个简单的HTTP服务。我们定义了四个路由:
周辰晨
2024/03/18
2040
Go web 开发框架 - Gin 简述
Gin 的英文意思是 杜松子酒,在它的官方介绍中提到了它的API 风格是 和 martini 相像的( martini-like )。而 martini 也是一个web框架,有意思的是 martini 的英文是 “马提尼”,也是一种鸡尾酒。
张云飞Vir
2020/04/16
2.5K0
Go web 开发框架 - Gin 简述
Gin 如何编写一个接收文件的 HTTP 接口
以前遇到编程类的问题,第一时间想到的是 Google,而现在我会问 ChatGPT。
恋喵大鲤鱼
2023/02/23
1.4K0
相关推荐
02 . Go框架之Gin框架从入门到熟悉(数据解析和绑定,渲染,重定向,同步异步,中间件)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档