Kasada p.js (x-kpsdk-cd、x-kpsdk-cd、integrity)

提供x-kpsdk-cd的API服务
详细请私信~
可试用~

一、简述

integrity是通过身份验证Kasada检测机器人流量后获得的一个检测结果(数据完整性)
x-kpsdk-cd
是经过编码计算等等获得。当你得到正确的解决验证码值之后,解码会看到如下图在这里插入图片描述

二、cookie生成过程分析

访问过程

首次访问目标网页时,会由目标网页p.js触发fp(指纹)请求,根据目标网站所给定资源权限不同,fp会携带不同的特征。首次访问fp总是会得到429响应。

429响应原因

429响应原因大致分为两种

  1. cookie值不正常(初次访问无cookie、cookie值错误)
  2. 同一个 ip 访问指纹请求次数过多
  3. 存在少数其他情况(challenge of r)

由原因 1 所导致时,属于p.js正常处理逻辑。

ips.js重载高级指纹信息

下图内容可见主要由三块:

  1. cookie内容
  2. x-kpsdk-v版本信息
  3. x-kpsdk-im值

目标网站得到这条响应时,会尝试携带VM数据对当前所使用电脑机器进行数据采集编码构造汇编数据

此时访问,会返回一个携带部分特征值(或者某种Message Digest)的cookie与相关其他的信息,如下两图
在这里插入图片描述
首次访问会得到429响应,因为没有cookie。而fp得到响应是需要加载ips.js
在这里插入图片描述
ips.js 加载后,ips.js内部将会得到一个巨坤长的编码字符串,是VM数据编码的值。
在这里插入图片描述
在ips.js内部,又会通过内部的方法,发送VM数据到kasada接口进行验证检测(malware、traffic、AI)
例如发送:采集浏览器高级指纹发送、采集网络环境、采集你的操作系统信息等,构造成特征值,以及其他数据
在这里插入图片描述
当通过系统的机器人检测之后,tl 资源请求将会得到
{“reload”: true}
在这里插入图片描述

即响应重载成功,代表此时通过了机器人恶意流量检测。得到正确的cookie值。

PS:
通过大量cookie数据采集以及统计数据分析
Cookie的编码具有特定方法以及特定算法内容、暂不公开
在这里插入图片描述

三、x-kpsdk-cd与x-kpsdk-ct

在加载了正确的cookie值之后,又会遇到一个数据完整性相关的盾——integrity
在这里插入图片描述
这个请求,意思相当于获取一个临时通行证,Web开发中常见的token或者JWT。

但是这个请求需要几个关于x-kpsdk的必要请求头,也正是这几个是检测机器人与恶意流量的关键。

主要说下两个

  • x-kpsdk-cd
  • x-kpsdk-ct

x-kpsdk-cd请求头

这个是通过目标网站的frame所给的验证码值与p.js的进行解析验证码所获得的。
验证码解成功之后,得到的cd携带到integrity请求头中配合其他请求头,发送获取响应,得到上图的响应,很像JWT。通过base解码,可以看到被判定不是恶意流量。

x-kpsdk-ct请求头

这个请求头是通过fp资源或者ips.js请求的tl资源所获得的。与上面的cd、验证码是对应起来的(经过测试两者是可以独立工作的(未详细去做验证测试))
简单说,就是正确的cookie的值,作为这个请求头的值

x-kpsdk-v请求头

这个就很简单了,版本信息而已

x-kpsdk-dt、x-kpsdk-im

这两者是在某些特定请求中才会有,值的来源很好推断,来自ips响应与内部构造。

四、过盾

cookie值正确、请求头正确,自然就绕过盾(恶意流量检测)了。
只要涉及这个盾的相关业务,都拿下了,这里拿登录举个例子。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/227988.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Pytorch】学习记录分享8——PyTorch自然语言处理基础-词向量模型Word2Vec

【Pytorch】学习记录分享7——PyTorch自然语言处理基础-词向量模型Word2Vec 1. 词向量模型Word2Vec)1. 如何度量这个单词的?2.词向量是什么样子?3.词向量对应的热力图:4.词向量模型的输入与输出![在这里插入图片描述](https://img-blog.csdni…

Volume Control 2

为游戏添加音乐和音效总是需要一些编码来设置一个系统来控制、显示和保存应用程序的音量设置。 音量控制的设计是为了立即为您设置这些内容,让您有更多时间专注于最重要的事情——制作出色的游戏! 在版本2中,我们对系统进行了重新设计,使其更加模块化、灵活,甚至更易于使用…

RHCE9学习指南 第13章 硬盘管理

新的硬盘首先需要对硬盘进行分区和格式化,首先了解一下硬盘的结构,如图13-1所示。 图13-1 磁盘上的磁道和扇区 硬盘的磁盘上有一个个的圈,每两个圈组成一个磁道。从中间往外发射线,把每个磁道分成一个个的扇区,每个扇…

Qt基础之四十五:Qt国际化(I18N)

国际化的英文表述为Internationalization,通常简写为I18N(首尾字母加中间的字符数),这种奇葩的缩写方式,让我想起了NBA球星“字母哥”。 下面看下Qt实现的动态语言切换效果。 一.效果 二.源码 QHSettingDialog.h #ifndef QHSETTINGDIALOG_H #define QHSETTINGDIALOG_H#…

Grafana监控数据可视化

Grafana 是一个可视化面板,有着非常漂亮的图表和布局展示,功能齐全的度量仪表盘和图形编辑器,支持 Graphite、zabbix、InfluxDB、Prometheus、OpenTSDB、Elasticsearch 等作为数据源,比 Prometheus 自带的图表展示功能强大太多&am…

【MySQL】主从异步复制配置

您好,我是码农飞哥(wei158556),感谢您阅读本文,欢迎一键三连哦。 💪🏻 1. Python基础专栏,基础知识一网打尽,9.9元买不了吃亏,买不了上当。 Python从入门到精…

删除数据后, redis 内存占用还是很高怎么办?

现象: reids 做了数据删除,数据量不大,使用 top 命令看,发现还是占用大量内存 原因: 1.redis 底层内存根据内存分配器分配,不会立刻释放 2.redis 释放的内存空间不是连续的,存在碎片 内存碎…

软件开发新手用哪个IDE比较好?软件开发最好的IDE都在这!

目录 IDES 的优点 最佳编程 IDE 列表 Java 开发的流行集成开发环境 JetBrains 的 IntelliJ IDEA NetBeans 适用于 C/ C、C# 编程语言的最佳 IDE Visual Studio 和 Visual Studio 代码 Eclipse PHP 开发的最佳 IDE PHPStorm Sublime Text Atom JavaScript 的顶级 I…

多线程编程设计模式(单例,阻塞队列,定时器,线程池)

💕"只有首先看到事情的可能性,才会有发生的机会。"💕 作者:Mylvzi 文章主要内容:多线程编程设计模式(单例,阻塞队列,定时器,线程池) 本文主要讲解多线程编程中常用到的设计模式,包括单例模式,阻塞队列,定时…

Go语言中的HTTP重定向

大家好,我是你们可爱的编程小助手,今天我们要一起探讨如何使用Go语言实现HTTP重定向,让我们开始吧! 大家都知道,网站开发中有时候需要将用户的请求从一个URL导向到另一个URL。比如说,你可能想将旧的URL结构…

宏集方案 | 物联网HMI的关键驱动力—SCADA级功能库和控件库

来源:宏集科技 工业物联网 宏集方案 | 物联网HMI的关键驱动力—SCADA级功能库和控件库 原文链接:https://mp.weixin.qq.com/s/UEPtpTehdbFrw3MUCnuR2A 欢迎关注虹科,为您提供最新资讯! 01 前言 在这个数字化时代,物…

iptables防火墙(二)

目录 1、SNAT策略及应用 1.1、SNAT 策略概述 1.2、SNAT 策略的应用 2、DNAT 策略及应用 2.1、DNAT 策略概述 2.2、DNAT 策略的应用 3、规则的导出、导入 3.1、规则的备份及还原 3.2、使用 iptables 服务 4、使用防火墙脚本 4.1、防火墙脚本的构成 &#xf…

Qt 5.9.4 转 Qt 6.6.1 遇到的问题总结(一)

最近公司对大家的开发的硬件环境进行了升级,电脑主机的配置、显示器(两台大屏显示器)变得的逼格高多了。既然电脑上的开发环境都需要重装,就打算把开发环境也升级到最新版本,要用就用最新版本。下面对升级后的开发环境…

ssm基于vue框架的点餐系统的设计与实现+vue论文

基于vue框架的点餐系统的设计与实现 摘要 当下,正处于信息化的时代,许多行业顺应时代的变化,结合使用计算机技术向数字化、信息化建设迈进。传统的点餐信息管理模式,采用人工登记的方式保存相关数据,这种以人力为主的…

Flink1.17实战教程(第六篇:容错机制)

系列文章目录 Flink1.17实战教程(第一篇:概念、部署、架构) Flink1.17实战教程(第二篇:DataStream API) Flink1.17实战教程(第三篇:时间和窗口) Flink1.17实战教程&…

听GPT 讲Rust源代码--src/tools(37)

File: rust/src/tools/clippy/clippy_lints/src/explicit_write.rs 在Rust源代码中,explicit_write.rs这个文件是Clippy的一个lint插件,其作用是检查代码中的write!、writeln!宏使用时的不当或繁琐的情况,并给出相关的警告或建议。 具体来说&…

阿里后端实习二面

阿里后端实习二面 记录面试题目,希望可以帮助到大家 类加载的流程? 类加载分为三个部分:加载、连接、初始化 加载 类的加载主要的职责为将.class文件的二进制字节流读入内存(JDK1.7及之前为JVM内存,JDK1.8及之后为本地内存)&…

Xshell连接ubuntu,从github克隆项目,用Xshell克隆项目

访问不了github:https://blog.csdn.net/liu834189447/article/details/135246914 短暂解决访问问题。 ping不通虚拟机/无法连接虚拟机:https://blog.csdn.net/liu834189447/article/details/135240276 ps: Xshell、ubuntu的粘贴快捷键为 Shift Insert …

单片机外设矩阵键盘之行列扫描识别原理与示例

单片机外设矩阵键盘之行列扫描识别原理与示例 1.概述 这篇文章介绍单片机通过行列扫描的方式识别矩阵键盘的按键,通过程序执行相应的操作。 2.行列扫描识别原理 2.1.独立按键识别原理 为什么需要矩阵按键 独立按键操作简单,当数量较多时候会占用单片机…

“C语言与人生:手把手教你玩转C语言数组,从此编程无难题“

各位少年,我是博主那一脸阳光,由我来给大家介绍C语言的数组的详解。 在C语言中,数组是一种极其重要的数据结构,它允许我们存储和管理相同类型的一系列相关数据。通过理解并熟练掌握数组的使用,开发者能够高效地处理大量…