首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

博文|你还在用python写API,赶紧体验全新curl、jq的API!

本实验中,将使用bash环境与实用程序“curl”和“jq”来执行Zabbix API调用并编写一些脚本。“curl”是一个通过HTTP/HTTPS交换JSON消息的工具。...实用程序“jq”有助于定位和提取输出中的特定元素。.../stedolan/jq/releases/download/jq1.5/jq-linux64" -o /usr/bin/jq && chmod +x /usr/bin/jq 获取一个授权令牌 为了使...这是一个URL,这个地址后端是个php文件被设计用来接收请求用的。 获取一个授权令牌。 如果趋向于从前端服务器执行API调用,那么有可能出现以下情况。...业务需求 有什么需求可以用到图形的调用? 1. 告警邮件添加图形:图形的直观表达 2. 第三方系统展示:嵌入系统 3. 巡检报告导出:导出到文档中

80130
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    json命令行处理神器jq介绍

    让我们一起开启jq的学习之旅,掌握这个改变游戏规则的工具!   首先,jq命令在许多操作系统中并非默认安装,因此需要手动安装。例如,在我使用的Mac系统上,我可以通过Homebrew来安装jq。...后跟字段名来提取特定字段。这是jq最基本也是最常用的操作之一。具体来说: 点号(.)表示当前的JSON对象。 在点号后直接跟上字段名,就可以访问该字段的值。...数组操作 使用 [] 来操作数组。jq提供了多种方式来处理JSON数组: 索引访问:使用 .[index] 来访问特定索引的元素。例如,.[0] 获取第一个元素。 切片:使用 ....以下是一些具体的例子: # 获取第一个元素 echo '[1, 2, 3, 4]' | jq '.[0]' # 输出: 1 # 获取数组切片 echo '...转换   使用管道 | 来组合多个操作是jq的一个强大特性。这允许我们将多个jq过滤器链接在一起,以执行复杂的数据转换和处理。每个管道阶段的输出成为下一个阶段的输入,使得我们可以逐步构建复杂的查询。

    11510

    数据安全及各种加密算法对比

    如果要编码的字节数不能被3整除,最后会多出1个或2个字节,那么可以使用下面的方法进行处理:先使用0字节值在末尾补足,使其能够被3整除,然后再进行Base64的编码。...单向散列函数输出的散列值又称为消息摘要或者指纹 特点: 对任意长度的消息散列得到散列值是定长的 散列计算速度快,非常高效 消息不同,则散列值一定不同 消息相同,则散列值一定相同 具备单向性,无法逆推计算...,在计算过程中原文的部分信息是丢失了的,一个MD5理论上可以对应多个原文,因为MD5是有限多个,而原文是无限多个的。...Hmac消息认证码(对MD5的改进) 原理: 消息的发送者和接收者有一个共享密钥 发送者使用共享密钥对消息加密计算得到MAC值(消息认证码) 消息接收者使用共享密钥对消息加密计算得到MAC值 比较两个MAC...值是否一致 使用: 客户端需要在发送的时候把(消息)+(消息·HMAC)一起发送给服务器 服务器接收到数据后,对拿到的消息用共享的KEY进行HMAC,比较是否一致,如果一致则信任 ?

    2.7K30

    你可能没那么了解 JWT

    (载荷):JSON 对象,存放实际需要传递的数据,支持自定义字段 ③ Signature(签名):这部分就是 JWT 防篡改的精髓,其值是对前两部分 base64UrlEncode 后使用指定算法签名生成...我们上面的 JWT 例子中第一部分 Header 有个 alg 属性,其值是 HS256 ,也就是 HMAC + SHA256 算法。 说了那么多,好像都没有正式介绍过 JWS 。...通常在客户端-服务端模式中,JWS 使用 JWA 提供的 HS256 算法加上一个密钥即可,这种方式严格依赖密钥,但在分布式场景,可能多个服务都需要验证 JWT ,若要在每个服务里面都保存密钥,那么安全性将会大打折扣...而公钥/私钥方案的工作方式就不同了,在 JWS 中私钥对令牌进行签名,持有公钥的各方只能验证这些令牌;但在 JWE 中,持有私钥的一方是唯一可以解密令牌的一方,公钥持有者可以引入或交换新数据然后重新加密...Encrypted Key (加密密钥) :用于加密密文和其他加密数据的密钥。 Initialization Vector (初始化向量) :一些加密算法需要额外的(通常是随机的)数据。

    1.2K20

    我现在写jquery,你们会不会打我??

    好了上面那些废话是今天的引子,今天咋们需要做的是通过jq来看看这个框架背后的东西,学习jq主要功能实现原理,供今后实际开发中学习和借鉴。...实现click方法 但是细想,无论是js选择器还是jquery选择器都是需要来获取节点进行操作的。所以你会发现,我们这样定义没办法后续操作了。我们以click操作作为案例来瞅一下。...上述代码为了方便后面对于节点的操作,我会把一个或者多个节点绑定在this对象上,为后面的使用做铺垫。 on方法实现 on方法和click方法非常类似,只是click是单一方法,on是可以绑定多个方法。...先分析一波 css方法如何使用,通过调用来实现其功能: 调用方式一: let res = $("div").css("background"); console.log(res); 返还css获取的样式值...就是样式的值如果是number类型 会自动加上“px”单位 。但是细想下是不是所有的css样式是number类型的都需要 加上单位呢?

    47410

    在golang中引入私有git仓库的pkg包?引入私有Git仓库的包:在Go语言项目中轻松实现

    本文将指导你如何在Go项目中引入私有Git仓库的包,从设置SSH密钥到导入包和使用包,一步步详细介绍了操作过程。 导语 Go语言在现代软件开发中变得越来越重要,而合理利用第三方包可以加速开发流程。...你可以按照以下步骤来设置SSH密钥: 生成SSH密钥对: ssh-keygen -t rsa -b 4096 -C "your_email@example.com" 将公钥添加到Git仓库: 在Git仓库的设置中...步骤二:获取包 使用go get命令,通过提供私有Git仓库的URL来获取包。这一步需要根据你的Git仓库的协议选择适当的命令。...如果你的私有Git仓库使用不同的分支或标签来维护稳定版本,你可以在go get命令后添加@tag或@branch来获取特定版本的包。 考虑使用Go Modules来进行包管理。...总结 通过这篇博客,我们了解了在Go语言项目中引入私有Git仓库的包的步骤。从设置SSH密钥到获取包、导入包和使用包,我们一步步地指导了整个过程。

    40210

    JSON神器之jq使用指南指北

    您可以使用它来选择对象的特定字段:如果输入是具有“user”、“title”、“id”和“content”字段的对象,而您只需要“user”和“title”,则可以写 {user: .user, title...高级功能 变量在大多数编程语言中是绝对必要的,但它们在 jq 中被归为“高级特性”。 在大多数语言中,变量是传递数据的唯一方式。如果你计算一个值,并且你想多次使用它,你需要将它存储在一个变量中。...同样,这些主要在内部使用,以定义 jq 标准库的一些有用位。 一开始可能并不明显,但 jq 是关于生成器的(是的,这在其他语言中很常见)。提供了一些实用程序来帮助处理生成器。...例如,在大多数语言中,计算一个数字数组的平均值需要一些变量——至少有一个变量来保存数组,可能每个元素或循环计数器都有一个变量。...请注意,调用addvalue(.[])将导致在调用站点map(. + $f)的值中的每个值对部件进行一次评估。. 允许使用相同函数名的多个定义。

    28.7K30

    使用jq处理JSON数据(一)

    我自己写了一个方法来处理JSON格式的数据,之前写过文章:将json数据格式化输出到控制台,后来又更新了一些其他功能,修复了一些BUG,展示格式如下: INFO-> 当前用户:fv,IP:192.168.0.102...jq默认情况下输出格式的JSON。我们可以将少量的JSON数据通过管道传递给jq并获得格式正确的输出。 jq可以使用一个或多个过滤器作为参数。最简单的过滤器是.。...返回整个JSON数据的内容,这一点跟JsonPath类似,有兴趣的同学可以翻一翻我写过的JsonPath的文章。 下面的shell跟上面的命令行结果是一致的。...这是一个jq常见用法,我用moco API封装框架,将上面的JSON数据当做一个接口的响应。...下面我们用curl命令访问接口,并获取响应结果,然后使用jq命令获取一些值的集合。

    2.7K10

    工具| jq 玩转JSON数据的利器

    一简介 JSON是计算机程序通讯的一种常见格式。在我们日常运维或者开发过程中经常需要解析json文件 ,但是部分文件内容有非常不利于人工阅读。如何解决呢?jq来帮忙。...jq 提供三种基础表达式来操作数组: 迭代器操作('.[]'). 该表达式的输入可以是数组或者 JSON 对象。输出的是基于数组元素或者 JSON 对象属性值的 iterator。...该表达式的输入可以是数组或者 JSON 对象。输出的是基于数组元素或者 JSON 对象属性值的 iterator。 访问特定元素的操作('.[index]'或'.[attributename]')。...表达式操作是用来关联多个基础表达式。其中逗号表示对同一个输入应用多个表达式。管道符表示将前一个表达式的输出用作后一个表达式的输入。..." } $ cat 1.json| jq '.[0].key1'## 获取指定key 对应的value "v1" 内建函数 jq还有一些内建函数如 keys,has $ cat test.json

    3.8K20

    在 Go 中使用 Kubernetes 对象

    2、使用 JsonPath、JMESPath、jq 等对 K8s 对象执行通用 CRUD(创建/读取/更新/删除)操作。需要一种通用方法以避免必须编写显式代码来处理每种可能的资源类型。...struct unstructured.Unstructured 是一种简单类型,它使用一组嵌套的 map[string]interface{} 值来创建一个内部结构,该结构与来自 K8s API 服务器的...struct dynamic.Interface 使用 unstructured.Unstructured 来表示来自 API 服务器的所有对象值。动态包将所有数据绑定推迟到运行时。...然而,设想一下,如果我们正在编写一个可以评估任何对象类型中的任何字段的函数,我们将需要多少代码。如果没有动态客户端的能力、对底层 JSON 内容的访问以及 jq,那将是一项无法完成的任务。...但是,如果对象类型很多,或者在类型之前不知道特定的对象类型,或者对象类型来自缺乏关联 Golang 结构体的第三方资源,那么动态客户端则提供了所需的灵活性。

    1.6K40

    微服务系列:通过Kong网关给API加Key鉴权

    ➢ OAuth 2.0认证: 提供了一个安全的访问控制框架,允许用户给第三方应用授权,在不暴露用户凭证的情况下访问API。...➢ OpenID Connect: 基于OAuth 2.0的身份层,用于认证并获取用户基本信息,在现代应用中非常流行。2.2 Key Auth(密钥认证)是什么?...Key Auth是Kong网关中的一个插件,它将API密钥绑定到消费者对象并通过这个密钥来管理对API资源的访问。在客户端发起请求时,它必须在请求中携带一个有效的API密钥。...,完成下面的测试3.4.1 发送未认证的请求尝试在未提供密钥的情况下访问服务:curl -s http://localhost:8000/v1/api/random_value/ | jq{ "message...但是Kong与第三方OAuth对接,需要升级到企业版的Kong,对中小企业不太友好。如果仅仅提供API访问、不需要复杂鉴权,个人认为Kong还是适合使用的。

    1.4K22

    Android 如何获取有效的DeviceId

    google也给出了一个解决方案 许多使用场景都不需要不可重置的设备标识符。例如,如果您的应用将不可重置的设备标识符用于广告跟踪或用户分析目的,请为这些特定使用场景使用 Android 广告 ID。...要了解详情,请参阅唯一标识符的最佳做法。 这里大部分方案对国内无效,比如广告ID,需要google play的服务,但是国内的手机上都阉割掉了。所以我们只能参考一些可用的方案。...要在 OTA 后在卸载期间保留值,开发者可以使用密钥/值备份关联旧值和新值。 对于安装在运行 Android 8.0 的设备上的应用,ANDROID_ID 的值现在将根据应用签署密钥和用户确定作用域。...解决方案 想要一个行为获取稳定的DeviceId是不可能的,我们需要多个行为结合处理。 DeviceId 首先就是传统的DeviceId,在Android 10一下还是很稳定的。...目前来看,各手机厂商的指导方案也就这几个方案。 补充 除了上面的方案,还有移动安全联盟(信通院牵头)提供的sdk,可以获取几种设备标识符,大部分国内厂商都支持。 不过需要申请使用,还没测试过。

    7.3K30

    关于使用jq 处理json格式的简单笔记

    因为对象里面的每个元素都是 key:value的形式存在,虽然value 也可以是一个复合类型,但是不影响 key:value 这种格式,所以对于对象,通常用 jq .key 这种方式来获取对应key...如果要获得对象所有元素的key值,那么要把 |keys 串接在对象后面,需要注意的是 这里不是利用的shell的管道,而是jq内置的管道,所以属于jq的参数的一部分....,获取Key为name的所有key:value对,并以key:value的方式进行输出,但是空的字典对象如何排除呢?...-----简言之,对得到的值做进一步的过滤获得真正需要的结果 简单例子如下下: [root@localhost Desktop]# cat t | jq '.[]|..|keys?..."unknown" "multiple" #最后需要找到真正需求的值,这个根据具体情况来实现,这里不展示.

    7K10

    容器与云的碰撞——一次对MinIO的测试

    这就堵死了前两种绕过方法,爆破当然就更别说了,通常仅作为没办法的情况下的手段。当然,MinIO中使用用户的密码作为签名的密钥,这个其实会让爆破变地简单一些。...我们来实际测试一下,向http://192.168.227.131:9000发送如下请求,其中Host的值是我本地ncat开放的端口(192.168.1.142:4444): POST /minio/webrpc...这样,经过一次302跳转,我们收获了一个可以控制完整URL的GET请求: ? 放宽了一些限制,结合前面我对这套内网的了解,我们可以尝试攻击Docker集群的2375端口。...0x04 攻击Docker API 回到Docker API,我发现现在仍然没法对run和exec两个API做利用,原因是,这两个API都需要在请求Body中传输JSON格式的参数,而我们这里的SSRF...也就是说,Docker API支持通过指定远程URL的方式来构建镜像,而不需要我在本地写入一个Dockerfile。

    2.5K20

    【容器集群安全】一文搞定K8s集群信息收集(2)——内部信息收集

    在Linux或Unix系统中,可以通过执行env命令来查看当前shell会话中的所有环境变量及其值。这有助于排查与环境配置相关的问题,并确保敏感信息(如密码或API密钥)不会被不当暴露。...名称:文件或目录的名称。内核版本在Pod中下载kubectl并使用它来获取节点的内核版本信息,你需要确保Pod有足够的权限执行此操作。...如果需要,可以创建一个ClusterRole和RoleBinding来赋予相应的权限。...步骤3:安装kubectl在Pod内部,你可能需要先安装一些依赖项,然后下载并安装kubectl。...总结本文深入探讨了从红队(攻击者视角)角度对Kubernetes集群进行内部信息收集的策略与方法,覆盖了环境信息、容器检测、内核版本、Token类、Secret类、安全策略、端口服务、内部网络配置等多个关键领域

    10420
    领券