书签 分享 收藏 举报 版权申诉 / 61
上传文档赚钱

类型GraphQL 与 GraphQL 安全.pptx

  • 上传人(卖家):无敌的果实
  • 文档编号:2527341
  • 上传时间:2022-04-29
  • 格式:PPTX
  • 页数:61
  • 大小:3.42MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《GraphQL 与 GraphQL 安全.pptx》由用户(无敌的果实)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    GraphQL 安全
    资源描述:

    1、GraphQL 与 GraphQL 安全个人简介 图南奇安信 A-TEAM成员安全研究员曾经是一只程序猿(头发还在)邮箱:奇安信 A-TEAM团队主要致力于Web渗透、APT攻防、对抗,前瞻性攻防工具预研。从底层原理、协议层面进行严肃、有深度的技术研究,深入还原攻与防的技术本质,曾多次率先披露 Windows域、Exchange、WebLogic等重大安全漏洞,第一时间发布相关漏洞安全风险通告及可行的处置措施并获得官方致谢。团队急需产品经理、安全开发和安全研究员。欢迎有意者加入!说在前面的话01说在前面的话 共同作者:gyyyy(猎户攻防实验室)、图南 后端: 前端:+GraphQL简介02初

    2、识GraphQLGET /products HTTP/1.1Host: Accept: */*POST /orders HTTP/1.1Host: Accept: */*User-Agent: example-user-agentConnection: keep-aliveUser-Agent: example-user-agentContent-Type: application/jsonConnection: keep-alivedata:some data初识GraphQLPOST /graphql HTTP/1.1Host: accept: */*POST /graphql HTTP/

    3、1.1Host: accept: */*User-Agent: example-user-agentcontent-type: application/jsonConnection: keep-aliveUser-Agent: example-user-agentcontent-type: application/jsonConnection: keep-aliveoperationName:null,variables:,query:n product(productId: 1000) n_idn namen nnoperationName:CreateOrder,variables:dat

    4、a:some data,query:mutation CreateOrder($data:Data!) n createOrder(data: $data)nn初识GraphQL REST GraphQL使用GraphQL的大客户们GraphQL是什么GraphQL是什么请求你所要的数据,不多不少GraphQL是什么获取多个资源,只用一个请求GraphQL是什么描述所有的可能,类型系统GraphQL核心组成部分TYPESCHEMA用于描述接口的抽象数据模型,有Scalar ( 标量 ) 和Object ( 对象 ) 两种,Object由Field组成,同时Field也有自己的Type用于描述接

    5、口获取数据的逻辑,类比RESTful中的每个独立资源URI一个 GraphQL Schema 中的最基本的组件是对象类型QUERYRESOLVER用于描述接口的查询类型,有Query ( 查询 ) 、Mutation ( 更改 ) 和Subscription ( 订阅 ) 三种用于描述接口中每个Query的解析逻辑,部分GraphQL引擎还提供Field细粒度的ResolverGraphQL核心组成部分Type定义描述要查询数据的“形状”,并指定GraphQL服务器获取数据的方式,Schema包含在Type中, Schema的最基本的组件是对象类型(Object type)Query是所有Gr

    6、aphQL查询的根Resolver定义用怎样的技术方式从Schema中取出对应类型的数据GraphQL VS. RESTful VS. 参数型接口参数型接口和RESTful接口请求响应GET /blog?id=blogIdGET /author?id=authorIdGET /blog/blogIdGET /author/authorIddata: blog data data: author data data: blog data data: author data GraphQL VS. RESTful VS. 参数型接口GraphQL接口请求响应POST /graphqldata: q

    7、uery: n blog(blogId: blogId) nauthor n fieldn n field n nnblog: author: field: .field: .GraphQL VS. RESTfulRESTfulGraphQL VS. RESTfulGraphQLGraphQL安全问题03GraphQL安全漏洞身份认证与权限控制不当GraphQL和其他API技术一样,需要身份认证和鉴权身份认证与权限控制不当身份认证与权限控制不当 在一个JavaScript文件中暴露了一个GraphQL接口路径 通过这个GraphQL接口路径在未经身份认证的前提下查询到了很多关键数据身份认证与权

    8、限控制不当 一个获取用户地址簿的GraphQL查询语句可泄露部分用户地址簿信息身份认证与权限控制不当 组内普通成员可通过此漏洞越权成为主持人身份认证与权限控制不当GraphQL身份认证无效和权限控制不当问题频发的原因01 02 03个中间层对它定义的查询语言进行语法解析执行等操作ver等种种定义会让开发者对它的存在感知较大,间接的增加了对它理解的复杂度不同的field查询得到不同的结果,开发者需要对每个field的resolve做权限控制身份认证无效GraphQL认证无效解决方案 RER SE TS fuT l身ful份 身 认 份 证 认证GraphQL认证无效解决方案 Gra方 p案hQ一

    9、 L:身独份立认认证证终端GraphQL认证无效解决方案 独立认证终端GraphQL认证无效解决方案 方案二:在GraphQL内认证GraphQL认证无效解决方案GraphQL认证无效解决方案并发症一:内省导致的信息泄露GraphQL自带强大的内省机制_schema可查询所有可用对象_type可查询指定对象的所有字段并发症一:内省导致的信息泄露_schema的用法并发症一:内省导致的信息泄露_type的用法并发症二: 非预期的字段同一个接口给不同的权限职能属性的角色使用正常情况下每一个角色只查询接口的部分字段但如果不对字段权限进行控制,即可被恶意利用查询出全部字段并发症二: 非预期的字段容易查

    10、询出非预期字段的原因01 02 03前端请求的字段进行数据回传响应包含端无感对应字段即可知无影响并发症二: 非预期的字段举个 假设有如下需求:需求1:管理员可查看用户的相关信息(需要用户名、邮箱、创建日期等字段)需求2:运营人员需要统计用户数据,输出报表(需要用户名、身份证号、登录地点等字段)并发症二: 非预期的字段设计Schema如下:并发症二:非预期字段并发症三:废弃的字段GraphQL为字段删除提供了废弃方案如果一个字段不再使用,可以标识字段废弃但如果不对废弃字段的Resolver进行修改,依然可以查询到废弃字段的内容并发症三:废弃的字段刚才的继续:开发者意识到了问题,决定废弃敏感字段并

    11、发症三:废弃的字段使用_type内省仍然可以将废弃并发症三:废弃的字段由于开发者没有对Resolver做修改,废弃字段仍然可以正常参与查询GraphQL注入有语法就会有解析,有解析就会有结构和顺序,有结构和顺序就会有注入 gyyyyGraphQL注入再举个前端使用变量构建带参查询语句,通过用户名查询用户)%7Busername%7Dhack%3Auser(username%3Aadmin)%7Bpassword%23GraphQL注入GraphQL语句的结构被改变GraphQL注入解决方案参数值以变量的形式传入,由解析器实时赋值解析拒绝服务GraphQL允许对象间的嵌套关系存在如果不对嵌套深度

    12、进行限制,就会被攻击者利用进行拒绝服务攻击拒绝服务举最后一个需求1:查询所有文章,返回内容中包含作者信息需求2:查询作者信息,返回内容中包含此作者写的所有文章拒绝服务定义Blog和Author并构建Query拒绝服务可构造如下恶意查询如下拒绝服务解决方案限制查询深度,同时在设计GraphQL接口时应尽量避免出现此类问题结语04总结GraphQL是什么GraphQL与RESTful的区别安全问题1:身份认证与权限控制不当安全问题2:GraphQL注入安全问题3:拒绝服务他只是个接口 XSS SQL注入 NoSQL注入 CSRF 远程命令执行 filter: or =filter: $ne: null

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:GraphQL 与 GraphQL 安全.pptx
    链接地址:https://www.163wenku.com/p-2527341.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库