Charles抓包工具系列文章(六)-- Block List 和 Allow List (黑白名单)

一、背景

Allow List 是白名单,请求的接口如果在白名单里,就被允许。

Block List 是黑名单,请求的接口如果在黑名单里,就被拒绝。

黑白名单是可以一起启用的,优先黑名单。

二、白名单 Allow List

在这里插入图片描述

1、新增白名单接口

在这里插入图片描述

处理动作可以是Drop connection, 也可以是Return 403 response。

在这里插入图片描述

在这里插入图片描述

2、验证结果

请求的接口不在白名单里,报错见下:
在这里插入图片描述

上面设置的是Drop connection,,如果白名单处理的动作换成Return 403 response,报错将变成如下:
在这里插入图片描述

三、黑名单 Block List

在这里插入图片描述

1、新增黑名单

在这里插入图片描述
在这里插入图片描述
接下来,我们将访问接口http://192.168.10.19:9039/api/v1/work/workId/1/detail。

2、验证结果

在这里插入图片描述

四、总结

黑名单启用的情况下,白名单也启用,访问某个接口,会发生什么呢?

这里把测试验证结果总结一下:

匹配白名单匹配黑名单结果
黑名单生效,Tags = Block List,请求被拒
请求正常
白名单生效,Tags = Allow List,请求被拒
黑名单生效,Tags = Block List (同只匹配黑名单一样),请求被拒

所以它的逻辑是:

先判断是否匹配黑名单,如果请求接口在黑名单里,则请求被拒。

再判断是否匹配白名单,如果不在白名单里,则请求也被拒;反之,请求正常通过。

1、实现自己的黑白名单

在日常编程中,我们也会需要或这或那的黑白名单。

比如用户ID、学校ID、IP地址、设备编号等, 以此实现不同粒度的黑白名单。

建议你也像这样配置两个名单,黑名单和白名单,黑名单优先于白名单。

再加上黑白名单的开关变量。

如此设计,适应灵活的业务需求变化。

2、伪代码

 Integer schoolId

// 黑名单
if (commonConfig.getEnabledBlack()) {
     if (StringUtils.isNotEmpty(schoolIdBlackList) && schoolIdBlackList.contains(schoolId.toString())) {
        // 在黑名单里, 返回报错
         throw new BizException("学校在黑名单里");
     }
 }

// 白名单
if (commonConfig.getEnabledWhite()) {
     if (StringUtils.isEmpty(schoolIdWhiteList)) {
         throw new BizException("学校不在白名单里");
     }
     if (!schoolIdWhiteList.contains(schoolId.toString())) {
        // 不在白名单里, 返回报错
         throw new BizException("学校不在白名单里");
     }
 } 

附录

Charles抓包工具系列文章(一)-- Compose 拼接http请求
Charles抓包工具系列文章(二)-- Repeat 回放http请求
Charles抓包工具系列文章(三)-- 接口映射工具(Map Remote和Map Local)
Charles抓包工具系列文章(四)-- Rewrite 重写工具
Charles抓包工具系列文章(五)-- DNS spoofing (DNS域名伪装)
Charles抓包工具系列文章(六)-- Block List 和 Allow List (黑白名单)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024国内外音频转换器大盘点,盘点音乐剪辑的7个有效方法!

当遇到不支持的音乐文件时,您可能就会想要拥有一款优秀的音频转换器。当您想减小大量音乐文件以节省设备存储空间时,它也可以很好地帮上忙。如果您正在寻找这么一款音频转换器,那么,请不要错过这篇文章。一款顶尖的音频转换器不仅…

网络安全入门教程(非常详细)从零基础入门到精通,看完这一篇你就是网络安全高手了。

关于我 我算是“入行”不久的一个新人安全工作者,为什么是引号呢,因为我是个“半个野路子”出身。早在13年的时候,我在初中时期就已经在90sec、wooyun等社区一直学习、报告漏洞。后来由于升学的压力,我逐渐淡出了安全圈子&#x…

[vscode] 自定义log快捷生成代码

1、进入设置页面:文件>首选项>用户代码片段>选择设置的语言。 2. 关于代码段显示位置的调整设置 文件>首选项>设置,搜索代码段或snippetSuggestions,修改为”top”; 参考: vscode自定义log快捷生成代码

铊的危害以及工业废水除铊的工艺

铊是一种有毒的重金属,具有强烈的神经毒性,同时对肝肾也有损害作用。铊中毒分为急性中毒和慢性中毒,急性中毒一般在接触12-24h内发病,早期表现为食欲减退、恶心、呕吐、腹痛、腹泻等消化道症状,数天后才出现明显的神经…

酷开系统丨酷开科技AI赋能数字大屏,开启智能家居新纪元

在当今数字化时代,人工智能(AI)技术的崛起无疑为科技领域带来了革命性的变化。酷开科技,正以其独特的"AI数字大屏"战略,将创新理念转化为现实,引领行业发展新潮流。 酷开科技的智能电视操作系统…

基于前馈神经网络的姓氏分类任务(基础)

1、认识前馈神经网络 What is it 图1-1 前馈神经网络结构 人们大多使用多层感知机(英语:Multilayer Perceptron,缩写:MLP)作为前馈神经网络的代名词,但是除了MLP之外,卷积神经网络&#xff08…

AI智能体的炒作与现实:GPT-4都撑不起,现实任务成功率不到15%

AI 智能体的宣传很好,现实不太妙。 随着大语言模型的不断进化与自我革新,性能、准确度、稳定性都有了大幅的提升,这已经被各个基准问题集验证过了。 但是,对于现有版本的 LLM 来说,它们的综合能力似乎并不能完全支撑得…

Java基础的重点知识-04-封装

文章目录 面向对象思想封装 面向对象思想 在计算机程序设计过程中,参照现实中事物,将事物的属性特征、行为特征抽象出来,描述成计算机事件的设计思想。 面向对象思想的三大基本特征: 封装、继承、多态 1.类和对象 类是对象的抽象&#xff…

初阶 《操作符详解》11. 下标引用、函数调用和结构成员

11. 下标引用、函数调用和结构成员 1. [ ] 下标引用操作符 操作数:一个数组名 一个索引值 int arr[10];//创建数组 arr[9] 10;//实用下标引用操作符,[ ]的两个操作数是arr和9arr[7]-->*(arr7)-->*(7arr)-->7[arr] 7[arr] 9; //编译器不会…

软考《信息系统运行管理员》-1.1信息系统概述

1.1信息系统概述 信息的含义 信息是人们关心的事情的消息或知识 信息的分类 按产生信息的客体性质分: 自然信息:声、光、热、电等生物信息:遗传信息,生物体内、生物种群内的信息交流机器信息:自动控制系统社会信息…

flask与vue实现通过websocket通信

在一些情况下,我们需要实现前后端之间的时刻监听,本文是一篇工具文档,用于解决前后端之间使用websocket交互。 一. Flask的相关配置 1. 下载相关依赖库 如果还没有配置flask的话,需要先安装flask,同时为解决跨域问题&#xff0…

C++学习全教程(day1:变量和数据类型、运算符、流行控制语句)

目录 一、变量和数据类型 1、变量 2、标识符 3、作用域 4、常量 5、数据类型 1.基本数据类型-整型 2.char类型 3.bool类型 4.浮点类型 5.字面值常量 二、运算符 1、算数运算符 2、赋值运算符 3、复合赋值运算符 4、关系和逻辑运算 1.关系运算符 -------结果是…

SAP系统中如何用事务码图形视图寻找MD04增强开发实施点

在之前发布的文章中,介绍了善用事务码的图形视图以观察事务的执行流程以及如何在MD04中实施增强以改变生产订单的显示顺序。本文结合两者,介绍一下如何利用事务码的图形视图找到增强开发的实施点。 在事务码中输入SE93,进入图形视图&#xf…

sql:between and日期毫秒精度过多导致的查询bug

复现 一般情况下,前端传的日期值大多都是yyyy-MM-dd HH:mm:ss(标准格式),比如2024-06-25 10:49:50,但是在测试环境,测试人员测出了一个带毫秒的日期:比如2024-06-25 10:49:50.9999999 这种情况下会出现查询bug SELEC…

使用 shell 脚本同步 yum 源建立本地私有仓库

文章目录 [toc]事出有因脚本内容前端展示 事出有因 有两方面原因做了这个事情: dockerhub 国内无法访问centos 7 要停止社区支持了 结合两个情况,不久的将来,可能国内也就没有对应的 yum 仓库了(现在想找 centos 7 之前的仓库&…

企业数据挖掘平台产品特色及合作案例介绍

泰迪企业数据挖掘平台是一款通用的、企业级、智能化的数据分析模型构建与数据应用场景设计工具,能够一体化地完成数据集成、模型构建、模型发布,为数据分析、探索、服务流程提供支撑,提供完整的数据探索、多数据源接入、特征处理、模型搭建、…

【Python机器学习】聚类算法的对比与评估——在人脸数据集上比较算法

数据探查: 我们将k均值、DBSCAN和凝聚聚类算法应用于Wild数据集中的Labeled Faces,并查看它们是否找到了有趣的结构。我们将使用数据的特征脸表示,它由包含100个成分的PCA(whitenTrue)生成: peoplefetch_lfw_people(data_home &…

为了提高出图效率,我做了一款可视化制作气泡图谱的小工具

嗨,大家好,我是徐小夕,之前和大家分享了很多可视化低代码的最佳实践,今天和大家分享一下我基于实际场景开发的小工具——BubbleMap。 demo地址:http://wep.turntip.cn/design/bubbleMap 开发背景 之前在公司做图表开发…

LINUX操作系统:Mx Linux,用虚拟机VMware Workstation安装体验

需求说明: 操作系统目前流行有Windows、Linux、Unix等,中国人应该要知道国有操作系统,也要支持国产操作系统,为了更好支持国产操作系统,我们也要知己知彼,那么今天就来体验一把操作系统Mx_Linux_23.2的安装…

mac m芯片下安装nacos

背景:最近再研究 下载地址: https://nacos.io/download/nacos-server/ 解压zip包 unzip nacos-server-2.3.2.zip启动 进入到bin目录下 ./startup.sh -m standalone访问可视化界面 账号密码都是nacos,进行登录即可,nacos的端口为…