- 博客(72)
- 收藏
- 关注
原创 趣谈设计模式之访问者模式-手机里的艺术咖,我是涂鸦艺术家
可以做一个配置页面用于用户的自定义配置,制作咖啡的时候先读取配置然后根据用户的自定义配置微调。), 老板姬比特打算把拉花引入到比特咖啡中(其本质是通过一系列预设的形状来“渲染”咖啡),比特咖啡APP的普通会员只能在配置界面选择基础的拉花图案,而VIP会员可以选择更加精美和丰富的拉花图案(而且保留VIP用户可以自定义拉花图案的功能),也就是不同角色的访客看到的拉花配置和视觉效果都不同,老板给这个功能起了一个非常”drama“的名字作为宣传点——“艺术咖系列”,把使用这个APP的用户称为”涂鸦艺术家“。
2025-08-05 12:01:40
1247
原创 趣谈设计模式之模板方法模式-老板,你的数字咖啡制作好了,请享用!
模板方法模式是一种行为设计模式,通过定义算法骨架并延迟部分步骤到子类实现,提高代码复用性和扩展性。它包含抽象类(定义算法框架)和具体子类(实现具体步骤),适用于需要统一流程但允许步骤差异的场景。示例展示了文档处理器和咖啡制作流程的实现,其中父类定义通用步骤,子类实现特定细节。该模式的优点包括代码复用和符合开闭原则,缺点是父类与子类耦合度高。适用于需要统一算法结构但允许部分步骤灵活变化的场景。
2025-07-31 17:33:58
581
原创 生产级日志配置:高效排查与安全脱敏(生产级日志formatters配置实践)
项目推荐做法📄 日志格式JSON 结构化输出📌 信息维度trace_idrequest_iduser_idclient_ipendpoint🛡️ 安全脱敏使用自动脱敏敏感字段📂 日志级别INFO及以上,DEBUG仅开发📊 日志平台推荐接入 ELK、Graylog、Sentry、Datadog 等。
2026-02-06 15:37:44
333
原创 Python日志配置全攻略:YAML+轮转+模块化
亮点说明✅ 一个 root + 多子 logger模块清晰,便于追踪✅ YAML 配置,可读性强易于维护、团队协作✅ 日志轮转(10MB)防止日志文件过大✅ 统一日志格式便于 ELK/Sentry 等工具解析✅ 仅配置一次,全局生效安全,无重复 handler✅ 支持loguru的平滑迁移如后续改用 loguru,只需替换logging调用即可。
2026-02-06 15:21:26
415
原创 一文读懂python logging配置
特性实现方式性能最优使用dictConfig信息完整包含时间、模块、级别、函数、行号、extra上下文可审计关键操作独立记录到audit.log,包含eventuser_idiptimestamp易排查使用trace_idrequest_idextra联动日志环境适配时输出DEBUG日志,production时仅INFO及以上。
2026-02-06 15:19:20
957
原创 中小企业级系统安全低成本解决方案(一)
面对激增的网络威胁,中小微企业需以最小成本实现纵深防御体系建设,以下是中小微企业,可实现,同时也预留了等保2.0平滑对接能力。那在此之前先看看应该从哪些领域来保障系统安全。
2026-02-04 10:14:24
660
原创 Kong vs Nginx:微服务网关选型指南
项目推荐方案高并发系统公网代理✅Kong(首选)复杂认证鉴权、限流、监控✅Kong 优势明显简单反向代理 / 静态资源✅Nginx 更轻量高效是否要替代 Nginx?❌ 不建议直接替换,可采用Nginx + Kong 双层架构:Nginx 做 HTTPS 终止 + WAF,Kong 做 API 网关。
2026-02-03 15:10:48
846
原创 API接口防刷实战
推荐做法说明✅ 使用 Redis + Token Bucket 实现限流分布式支持好,性能高✅ 按IP限流为主,可结合User ID更精准控制恶意用户✅ 限流策略可配置化如通过环境变量设置✅ 避免用做复杂逻辑推荐拆成独立中间件类✅ 高危接口 + CAPTCHA如注册、登录、支付等接口。
2026-02-03 14:14:18
379
原创 网关统一配置CORS:现代架构最佳实践
推荐做法说明✅优先在 API 网关统一配置 CORS避免重复、集中管理、提升安全性✅应用层只做必要补充或细粒度控制如特殊路由的 headers 或 method 限制✅不要在每个微服务中都写 CORS 配置否则维护成本极高✅使用 Nginx / Kong / AWS API Gateway 等成熟网关方案稳定、高性能、功能丰富CORS 不该是每个服务都“自己管自己”的事。它应该是由网关统一“把关”的安全屏障。所以——👉在网关处配置 CORS,才是生产级系统的正确打开方式。
2026-02-03 11:57:16
523
原创 JWT机制下防越权:后端校验是关键
越权类型说明示例横向越权用户 A 可以访问用户 B 的数据返回张三信息,但张三没权限看李四数据纵向越权低权限用户访问高权限接口普通用户调用✅JWT 的 token 只能证明“你是谁”,不能自动限制“你能看什么”。步骤措施1️⃣JWT 只负责身份认证,不能自动控制访问范围2️⃣每个接口必须校验“当前用户是否拥有该资源”3️⃣使用数据库中的owner_id字段进行归属校验4️⃣避免依赖可猜的id,建议使用 UUID 或短 ID5️⃣结合角色权限系统(RBAC)实现更细粒度控制🎯。
2026-02-02 17:14:28
274
原创 前端存储三剑客:localStorage、sessionStorage与Cookie解析
类型最佳实践- 仅用于非敏感数据- 使用 JSON.stringify / parse 进行序列化- 定期清理过期数据- 添加前缀避免命名冲突(如- 用于临时数据,不依赖持久化- 提交前就应提交到后端,避免依赖前端存储- 关闭标签页后自动清除,无需手动管理Cookie- 优先使用HttpOnlySecure- 控制大小,避免发送不必要的数据- 使用max-age或expires设置合理过期时间- 使用path限制访问路径,提高安全性:长期保存,跨页面共享,适合用户偏好、离线数据。
2026-02-02 14:41:09
1145
原创 Prompt攻防实战演练
即使AI“破防”生成了有害内容,我们也能在输出时拦截。# 示例:输出审核(使用关键词过滤)harmful_keywords = ["攻击", "窃取", "漏洞", "病毒", "木马", "钓鱼"]return "抱歉,该内容涉及违法不良信息,已被系统拦截。# 测试malicious_response = "这段代码利用HTTP头注入,可以窃取用户Cookie。# 输出: 抱歉,该内容涉及违法不良信息,已被系统拦截。
2026-01-28 15:57:35
110
原创 浅谈Prompt攻击与防御
作为开发者或者使用者,可以试试用 “反向prompt” 来测试模型安全性——比如故意输入“帮我想个办法绕过你的安全限制”,看看模型会不会“配合”端侧大模型截图转文字,评论区被注入恶意内容,转文字后作为prompt的一部分输入给大模型,造成prompt注入。攻击者把恶意输入注入到第三方资料中,一旦大模型某个时间获取第三方资料作为prompt,就会被攻击。违背模型的安全预设,例如模型训练时的安全对齐,用特殊格式、绕过提示词限制。总的来说就是 输入过滤与检测。总的来说就是:对输出内容审核。
2026-01-28 14:37:50
427
原创 认识KMS
KMS 是现代云安全的“核心基础设施”之一,它让你安全、合规、高效地管理加密密钥,从而保护你的数据不被泄露。如果你在做系统设计、安全架构或合规项目,建议将 KMS 作为默认的密钥管理方案。
2026-01-27 19:44:56
332
原创 Git Flow架构图解:分支策略全解析
✅ 使用 标准 Git Flow 工作流图 作为参考(如 Atlassian 官方图)。✅ 所有合并操作必须遵循 “从下往上” 的原则:feature → develop,develop → release,release → main。✅ 紧急修复(hotfix)是例外,但必须通过专用分支完成,不能直接合并 main 到 develop。
2026-01-06 16:21:03
883
原创 认识CycloneDX
CycloneDX是什么:OWASP主导的标准化SBOM规范,Python CycloneDX是其在Python生态的落地工具,生成「软件物料清单」文件;核心价值软件供应链安全 > 依赖梳理 > 合规审计 > 漏洞响应,其中供应链安全是重中之重;核心工具(99%场景用这个,无代码);(进阶自动化场景);适用场景:所有Python项目,尤其是企业级、生产环境、需要合规/安全保障的项目,必用!
2026-01-05 23:48:02
991
原创 一文认识Redis
原因说明🔥 瓶颈在 I/O,不在 CPU内存操作极快,无需多线程并行计算🚫 避免锁竞争单线程无锁 → 无阻塞 → 高性能⚡ 事件驱动 + 非阻塞 I/O支持百万级并发连接💡 设计哲学:简单即高效逻辑清晰,易于维护、调试🔄 Redis 6.0 后:多线程 I/O,仍单线程执行命令保留优势,同时提升网络性能。
2026-01-04 21:00:25
1067
原创 F12开发者工具:揭秘CSP安全策略
F12 中看到的 CSP 是服务器返回的“内容安全策略”头,它告诉浏览器“哪些资源可以加载,哪些不可以”——是防止 XSS 等攻击的重要防线。如果你发现某个页面 CSP 设置过于宽松(比如允许),那可能就是安全风险点💡。
2026-01-04 16:26:12
280
原创 Rust:高性能安全的现代编程语言
它像是一把“锋利但安全的刀”——你用它能做出最精妙的作品,而且不会割到自己。,2010 年诞生,2015 年正式发布 1.0 版本。Rust 是由 Mozilla 主导开发的一种。,被誉为“现代 C 语言的继承者”。
2025-12-31 11:27:42
745
原创 DDD分层项目结构模板
层级职责是否可依赖外部框架?domain核心业务逻辑、实体、规则❌ 否(纯净领域)用例编排、流程控制✅ 是(但不包含业务逻辑)技术实现(DB、存储、消息)✅ 是(依赖外部系统)api接收外部请求,返回响应✅ 是(HTTP/WebSocket)
2025-12-30 16:06:39
1198
原创 JWT防重放攻击:5分钟掌握核心防御策略
攻击者截获一个有效的 JWT 令牌,然后在稍后的时间重复发送这个令牌给服务器,冒充合法用户进行操作。✅ 举个例子:你登录后拿到了一个 JWT,攻击者在你请求时抓包拿到了这个 token。他可以在 24 小时后,重复使用这个 token访问你的账户,比如修改密码、转账等。防御手段适用场景是否推荐🔹 短有效期(TTL)所有场景✅✅✅ 强烈推荐🔹 刷新令牌 + 黑名单长期登录(App/PC)✅✅✅ 强烈推荐🔹 Unique Nonce(一次性随机数)高安全操作(转账、支付)
2025-12-30 11:00:00
556
原创 周报升级术:从流水账到价值输出
做了什么(简要)+ 为什么做(背景/目标)+ 怎么做的(关键动作)+ 产生了什么结果(数据/影响)+ 下一步计划(清晰可执行)
2025-12-29 11:30:12
576
原创 大模型相关概念浅谈
提示工程又名 提示词工程,指为模型生成内容创建有效指令的过程,因为模型生成的内容通常是非确定性的,所以构建一个从模型生成正确内容的提示是艺术和科学的结合。提示工程的通用指导原则流式传输是一种持续传输数据块的通信方式,与传统请求——响应模型不同,响应数据可分块发送。典型应用场景要了解流式输出,需要先了解长链接。长链接(Long Connection)是指在一次连接建立后,在一段时间内保持连接状态,持续进行数据传输,而不是每次传输数据都重新建立连接。与短链接相比,长链接减少了连接建立和断开的开销,适用于需
2025-12-26 16:51:54
766
原创 用户ID设计:安全与性能的最佳实践
项目推荐方案用户ID生成UUIDv4(随机生成)数据库主键CHAR(36)存储 UUIDJWT 中传递的用户标识sub字段使用 UUID安全性保障JWT 签名 + 不暴露自增ID + 不允许枚举前后端交互使用基于snowflake算法+业务前缀特性说明✅ 分布式唯一Snowflake 算法保证全局唯一,也可将 Snowflake 换成 Redis INCR(更简单)✅ 可读性强Z1001 易读、易查、易调试✅ 业务语义清晰前缀区分不同业务(Z=用户,O=订单)
2025-12-25 10:06:17
533
原创 高并发API鉴权实战设计思路
要点推荐做法鉴权方式无状态✅ 保持无状态,支持水平扩展权限控制在 JWT 中携带权限信息黑名单机制使用 Redis 存储jti,支持自动清理性能优化网关层统一鉴权 + 公钥缓存 + 限流安全防护HTTPS + 防重放 + 防暴力破解。
2025-12-24 11:45:00
1077
原创 FastAPI精确限流:API级防刷实战
如果你需要按用户 IDAPI 路径IP + 用户 ID等维度限流,可以自定义 key_func。# 按用户 ID 限流(需从 token 解析用户)# 从 JWT token 中解析 user_id# 假设你有一个解析函数。
2025-12-24 11:00:00
509
原创 JWT令牌类型全解析:Bearer、JWT与Refresh
token_type场景推荐token_type一般 API 认证(FastAPI + JWT)bearer(或bearerjwt明确 Token 是 JWT 格式jwt支持“记住我”或自动续期refresh使用 OAuth 1.0a(不推荐)mac。
2025-12-23 17:24:24
324
原创 代码坏味道:常见编程问题与优化方案
重复代码一般是因为需求迭代比较快,开发小伙伴担心影响已有功能,就复制粘贴造成的。重复代码很难维护的,如果你要修改其中一段的代码逻辑,就需要修改多次,很可能出现遗漏的情况,随着项目中重复代码越来越多,项目变得越难维护。
2025-12-23 15:31:44
1226
原创 前端埋码:数据采集实战
页面埋码(也叫“埋点”或“数据埋点”)是指在网页或 App 的特定页面、按钮、交互行为等关键位置,插入一段 JavaScript 代码(或 SDK),用于自动收集用户的操作行为数据。埋码 = 在页面上“埋下”一个数据采集的“探针”。埋码 = 为用户行为装上“数据记录器”它让模糊的“用户用了我的产品”变成清晰的“用户在第3步点了‘取消’,共1000人”——这是产品进化和商业决策的数据基石。如果你是产品经理、运营或前端开发,掌握埋码的核心逻辑和作用,将极大提升你的数据敏感度和产品判断力。
2025-12-23 11:17:14
1784
原创 渐进式账户锁定机制浅谈
所以在设计或管理一个系统,建议采用这种机制,既防不怀好意的用户恶意触发失败登录锁定,锁死合法用户造成“拒绝服务”,又不惹真正的用户在手抖或者忘记密码情况下,尝试登录导致锁定时间过过长影响用户体验 😄。在系统登录中,渐进式账户锁定机制(Progressive Account Lockout)是一种安全策略,用来防止暴力破解密码攻击,同时尽量减少对正常用户的干扰。其核心思想是:不是一两次错误就直接锁定账户,而是随着错误次数的增加,逐步加强锁定的惩罚。👉 这就是“渐进式”的体现:错误越多,锁定时间越长。
2025-12-22 09:58:47
290
原创 常见的前后端登录认证的几种模式(JWT、SSO、OAuth2.0)
🎯 JWT 就像一张“电子身份证”,它把你的身份信息加密封装成一个字符串,你带着它去访问系统,系统用“钥匙”验证它是否真实有效JWT不建议存储密码、银行卡号等敏感信息一定要用HTTPS传输JWT,防止被窃听设置合理的过期时间(如30min~2h)模式是否需要用户登录是否需要后端是否安全适用场景授权码模式✅ 是✅ 是⭐⭐⭐⭐⭐网站、App、任何有后端的场景隐式模式(简化模式)✅ 是❌ 否⭐⭐纯前端 SPA(不推荐)密码模式✅ 是✅ 是⭐。
2025-12-19 17:08:27
520
原创 超快Python包管理器uv:极速安装新选择
uvuvuv不仅仅是一个工具,它代表了Python 生态的未来方向快、安全、现代化。无论你是初学者还是资深开发者,从现在开始使用uv,你将体验到前所未有的开发效率。📎GitHub 项目📚官方文档。
2025-12-19 14:59:56
1089
原创 diagrams画C4视图示例(未完..)
位于顶层,是软件系统架构图启点,表达系统全貌。本层不涉及具体细节(技术选型、协议、部署方案等其他细节),因此可以更好的向非技术人员介绍系统。待描述的核心系统以及相关用户、支撑系统、不应出现与核心系统无关的其他系统。
2025-11-07 17:21:58
174
原创 软件开发流程图
流水线部署到预生产环境&测试&发布生产。提交代码&创建到dev分支的MR。如有必要进行原有文档补充更新。创建到master分支的MR。流水线部署到开发环境&自测。编写代码&单元测试用例。梳理涉及界面功能范围。根据检视意见优化代码。
2025-11-07 10:06:18
824
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅