Java

浏览该分类下的所有文章

文章解锁功能安全漏洞修复技术记录

博客文章解锁功能原本依赖本地存储 `blog_global_unlocked`,导致用户可通过浏览器 DevTools 修改键值绕过关注公众号的验证码验证,破坏付费与引流策略。为根除此漏洞,方案将关键验证迁移至服务器端,采用 Spring Boot REST 接口配合 Redis 保存解锁状态和一次性令牌,使用多层客户端标识(Cookie、请求头、IP+User‑Agent 指纹)生成唯一 `clientId`。前端通过 Fetch 与服务器查询解锁状态、获取令牌并在页面加载时决定是否解锁;拦截器统一注入 `clientId` 并写入长期 Cookie。令牌采用 MD5(clientId+timestamp+UUID) 生成,具滑动过期和防篡改校验。整体实现保持用户体验流畅,同时实现服务器可控、不可伪造、可追踪的安全解锁机制。

微信公众号API+Redis实现内容访问控制

实现基于微信公众号验证码的文章解锁功能:未关注用户仅能阅读文章前1/3,底部“查看全文”引导关注;关注后发送关键词“博客”即获6位数字验证码,验证码存入Redis(5 分钟有效、单次使用),前端通过 CSS max‑height 与渐变遮罩实现内容截断。用户验证成功后在浏览器 LocalStorage 标记全局解锁状态,实现全站解锁。后端采用 Spring Boot 提供验证码生成/验证 API 与微信消息处理接口,配合 Redis 保存验证码,整体架构为 浏览器 ↔ Spring Boot ↔ Redis ←→ 微信服务器。实现步骤包括 Redis 配置、验证码服务实现、微信接入及前端交互逻辑。

博客文章“部分展示+验证解锁”实现

本文介绍在博客中实现“部分展示+验证解锁”阅读限制的完整方案。通过自动计算文章高度,仅显示前1/3并加底部虚化遮罩,配合“查看全文”按钮触发验证弹窗。用户扫码关注公众号、发送关键词获取验证码,校验成功后在本地存储全局解锁标识,文章平滑展开并显示成功动画。实现核心包括HTML结构划分、CSS变量控制截断高度与过渡、JS负责高度计算、锁定/解锁逻辑及验证码校验。文中还提供响应式布局、全局解锁持久化及后续优化建议,如后端API动态验证码、微信自动回复、有效期控制、数据统计和A/B测试等。

使用Java写简单的网络DDos攻击(仅用于学习)

本文解析一段使用Java线程池和URLConnection实现的简易“DDoS”示例代码,指出其无限循环创建线程池、线程爆炸、资源泄漏、无超时等设计缺陷,强调运行会耗尽本机及目标服务器资源。文中重点警示未经授权的攻击违背《刑法》《网络安全法》并可能承担刑事责任,倡导在合法授权下进行压力测试。最后提供正确的并发请求写法、超时设置、连接复用及使用专业工具等改进建议,呼吁技术向建设性方向发展。

输入QQ号自动获取昵称

实现了在博客评论和回复框输入QQ号后自动获取昵称、头像并填充的功能。采用 uapis.cn 提供的 QQ 信息接口,使用正则校验和 jQuery AJAX 异步请求,失焦时触发。经过多接口对比后选定该稳定接口,并在友情链接/留言板和文章详情页完成集成。实现了前端格式验证、错误日志、跨域支持,并提出缓存、加载提示、备用接口及后端代理等优化建议。该功能简化了评论流程,显著提升用户体验。

SpringBoot实现AI智能评论审核与自动回复

本文介绍基于 Spring Boot 的 AI 智能评论审核与自动回复系统实现方案。系统采用前端展示、Controller、Service、AI 服务四层结构,核心包括本地敏感词预筛选+多模态 AI 深度审核的双层机制、基于状态机的评论流转、支持表情图片的多模态审核以及结合文章上下文的风格化自动回复。通过 Spring @Async 与自定义线程池实现异步处理,提升并发性能并降低用户等待时长,实现评论的快速安全审查和即时智能互动。

AI对话机器人技术实现文档

实现基于 Web 的 AI 对话机器人,嵌入博客文章页面,提供文章上下文的智能问答。核心功能包括打字机逐字显示、生成过程暂停/继续、对话历史本地持久化、快捷预设问题及响应式布局。前端采用原生 HTML5、CSS3、JavaScript,配合 Marked.js 解析 Markdown、Highlight.js 代码高亮、Font Awesome 图标;后端通过 RESTful API 调用 AI 服务,数据存储使用 LocalStorage。系统划分为界面层、交互层、数据层和服务层,采用状态机管理 idle、thinking、generating、paused 等状态。针对打字机与 Markdown 同步、暂停状态持久化、多状态切换不一致等难点,分别实现增量渲染、保存暂停标记和统一状态变量等解决方案。

为博客每日一句添加音频播放功能

为博客底部的“每日一句”添加英文音频播放功能。通过有道词典每日一句API获取 voice URL,后端实现 `/api/daily-quote/voice` 代理接口解决 CORS,前端加入圆形播放按钮、CSS 动画和播放状态反馈,使用 HTML5 Audio 管理播放、暂停及结束事件,并处理 DOM 加载时机和移动端样式适配。实现后,点击按钮即可播放或暂停音频,播放中按钮呈粉色脉冲动画,兼容 PC 与移动端,提升访客的英语学习体验。

使用自定义图片作为Emoji表情的技术实现

本文介绍在 Web 项目中实现自定义图片 Emoji 的完整方案。首先约定表情图片统一存放于 `/static/img/emoji/`,使用有意义的英文或拼音命名。核心 JavaScript 包括:定义路径和名称列表、利用正则 `\[:([a-zA-Z0-9_\-@]+):\]` 将 `[:表情名:]` 替换为 `<img>` 标签、动态生成表情面板并在编辑器中插入图片、提交前再将 `<img>` 转回文本代码。配套的 CSS 负责内联表情、面板布局及悬停效果,HTML 结构由按钮、面板和容器组成,并通过点击、冒泡控制面板显示。进阶可加入 IntersectionObserver 懒加载、localStorage 记录最近使用、分类展示等功能。整体思路是“纯文本存储‑图片展示‑编辑插入‑代码回写”,实现了可扩展、跨平台、风格统一的 Emoji 系统。

博客侧边栏热门文章与最新文章功能实现详解

本文介绍在 Spring Boot + Thymeleaf 项目中为博客文章详情页实现侧边栏的热门文章(浏览量前5)和最新文章(发布时间前3)功能。通过只查询必要字段的 SQL、@Cacheable 缓存,实现一次查询复用;在控制器使用 Java 8 Stream 按浏览量降序排序并截取前5篇,直接取前3篇作为最新文章。前端采用 Thymeleaf 循环渲染,CSS 使用 sticky 定位保持左侧固定,媒体查询实现 PC 端显示、移动端隐藏,并通过颜色、圆点、文字截断等样式提升可读性。整体方案兼顾性能、响应式布局和用户体验。

博客文章分享卡片功能设计与实现

本文介绍了在博客中实现分享卡片的完整方案。通过 HTML Overlay 弹窗、Canvas 绘制和 qrcode.js 生成二维码,实现卡片展示文章标题、摘要、作者、时间等信息,并支持保存为图片。重点阐述了 Canvas 高分辨率绘制、文本手动换行、二维码异步绘制以及响应式 CSS 适配 PC 与移动端的技巧,配以颜色、字体等 UI 设计细节,并提供获取文章数据和下载图片的代码实现,完成一个兼顾性能与体验的分享功能。

视觉盛宴:手把手教你实现一个现代化的弹幕墙

本文系统阐述了现代弹幕墙的完整实现方案。首先明确视觉、流畅滚动、防重叠、交互、响应式和状态管理等核心需求;随后基于玻璃拟态风格设计容器和圆角卡片弹幕,并提供六套主题色彩。核心滚动逻辑采用 keyframes 动画结合轨道管理,实现弹幕在不同轨道上的独立运行;通过安全轨道检测和密度自适应调度防止重叠。针对 PC 与移动端的全屏/非全屏场景,制定动态轨道数和居中布局策略,保证在尺寸变化时仍保持美观。交互方面实现速度倍率(0.5‑3×)调节、暂停/播放以及全屏切换时的弹幕清理。最后通过 transform/GPU 加速、对象池复用、事件防抖等手段进行性能与内存优化,确保弹幕墙视觉炫酷、交互流畅、适配广泛。