- 博客(50)
- 资源 (6)
- 收藏
- 关注
原创 多 GitHub 账号与多平台 Git 使用(附加场景:就想用指定账号clone)
摘要:临时clone GitHub仓库并指定用户账号有4种方式:1. 直接使用SSH Host(推荐⭐)最安全简单,不影响全局配置;2. HTTPS+insteadOf 自动转换,但依赖目录位置;3. clone后修改remote地址,适合修正错误;4. 仓库级user配置(不推荐❌),仅影响commit作者而非push权限。最佳方案是方式一,如git clone git@github-company:org/repo.git,明确可靠且不依赖环境。老手可使用语义化Host名(如gh-work/gh-per
2026-01-23 10:44:01
918
原创 多 GitHub 账号与多平台 Git 使用
本文档提供从Git新手到多账号管理的完整进阶指南。首先介绍单账号HTTPS基础用法,指出其局限性;然后讲解多账号HTTPS模式的常见问题;重点推荐SSH Key解决方案,详细说明单账号和多账号配置方法,特别是通过SSH Host分流和includeIf实现目录自动匹配身份的高级技巧;最后扩展到多平台共存和团队协作的最佳实践。文档强调从工具使用到身份管理再到组织协作的思维转变,提供了企业级Git工作流配置方案,适合个人开发者和团队参考使用。
2026-01-19 10:27:31
1144
原创 CSRF防护模式选择指南:三种方案的对比与决策
本文系统分析了CSRF防护方案的决策框架,包含5个核心维度对比表、场景化决策矩阵和流程图。针对金融级应用、现代Web应用和高并发API三种典型场景,分别给出具体配置方案和实施要点,强调安全措施、性能优化和故障处理策略。总结提出安全优先、性能优先、平衡和渐进4项决策原则,建议采用深度防御、定期评估、持续监控和团队培训等最佳实践,帮助构建有效的CSRF防护体系。
2025-12-12 17:01:08
992
原创 安全审查--跨站请求伪造--Fetch Metadata防护模式
本文介绍了FetchMetadata机制及其在Web安全防护中的应用。FetchMetadata通过浏览器自动添加的HTTP头(Sec-Fetch-Site、Sec-Fetch-Mode、Sec-Fetch-Dest)提供请求来源、方式和目标等元数据,帮助服务器识别可疑请求。文章详细解析了FetchMetadata的工作原理,并提供了从基础到生产级的实现方案,包括分层防护策略、智能规则引擎、安全监控和自适应防护等功能。同时讨论了浏览器兼容性处理、多环境配置等实战问题,指出FetchMetadata具有零实现
2025-12-12 12:28:09
843
原创 安全审查--跨站请求伪造--双重提交Cookie模式
本文详细讲解了双重提交Cookie模式防御CSRF攻击的原理与实现。首先通过网上银行转账案例展示了CSRF攻击的危害性,解释了攻击者如何利用浏览器自动携带Cookie的特性发起恶意请求。随后深入剖析了双重提交Cookie的核心理念:利用同源策略,要求请求同时携带Cookie中的token和请求头/体中的token进行双重验证。 文章从零开始演示了实现步骤:1)服务器设置可被JavaScript读取的CSRF Token Cookie;2)前端获取Cookie中的token并添加到请求头;3)服务器验证两个t
2025-12-12 12:14:29
788
原创 安全审查--跨站请求伪造--同步令牌模式
本文深入讲解了同步令牌模式(Synchronizer Token Pattern)的工作原理及实现方式,通过6个层次逐步展开:1) 从银行转账类比解释CSRF攻击原理;2) 阐述同步令牌的基本概念和防御机制;3) 提供从简单到复杂的代码实现方案;4) 介绍前端如何配合使用令牌;5) 分析多标签页、SPA应用等常见问题解决方案;6) 总结安全最佳实践和注意事项。文章采用生活化比喻和代码示例相结合的方式,系统性地展示了如何通过一次性随机令牌有效防御CSRF攻击,并提供了生产环境中的优化建议和错误处理方案。
2025-12-08 18:11:11
1129
原创 MySQL 毫秒时间处理
MySQL毫秒精度处理指南 摘要:MySQL从5.6.4版本开始支持毫秒精度时间类型,但使用时需注意:1) 必须显式指定精度(如DATETIME(3));2) 存储时会四舍五入而非截断;3) 不同精度类型转换会导致数据异常。建议:统一系统精度标准,使用NOW(3)等匹配函数,避免默认值精度不匹配,在应用层处理精度转换。特别注意TIMESTAMP会自动转换时区而DATETIME不会。
2025-11-27 11:34:11
872
原创 MySQL 子查询物化与半连接优化
摘要:本文详细分析了MySQL 8.0中子查询物化(Subquery Materialization)和半连接(Semi-Join)优化机制。通过对比MySQL 5.7和8.0的执行计划,展示了这些优化如何显著提升关联子查询性能。文章深入解析了5种半连接策略、物化执行流程,并通过真实案例展示其优化效果。测试数据显示,相比传统执行方式,物化技术可将查询时间从2.3秒降至0.15秒。最后给出了优化器控制方法和适用场景建议,帮助开发者充分利用MySQL 8.0的新特性提升查询效率。
2025-11-17 10:30:44
805
原创 Excel文件中的VBA脚本,在文件使用WPS编辑保存后无法执行
前文:团队有一个老项目,有一些配置内容使用 Excel 维护,里边有一些 VBA 基于配置的项目内容生成一系列的 sql 脚本;该文件的创建和更新一直使用的是Microsoft Office,团队中有小伙伴使用了 WPS 对该文件进行编辑保存,并且未按要求执行VBA, 等到配置管理员去获取 sql 脚本时才发现问题,这里,记录一下对文件的修复。
2025-10-22 12:20:19
1729
原创 MySQL ALTER TABLE 组合操作时导致的错误
通过将复合ALTER TABLE操作拆分为分步执行,可以完全避免因MySQL内部状态不一致导致的UPDATE操作失败问题。在8.0某些版本中,这种组合操作可能导致表元数据处于中间状态。MySQL对单条ALTER语句中的多个修改项有特殊优化路径。添加NULL列本应是"即时操作"(只修改元数据)单条复合ALTER在内部可能不是真正的原子操作。每个ALTER语句只执行一个变更目的。重建过程中可能产生不一致的内部状态。:清晰的执行步骤便于问题排查。将结构变更与数据变更分离执行。:每个操作都有明确的完成点。
2025-05-29 17:18:15
1025
原创 MySql添加非空字段时的“伪空”问题
在MySQL 8.0+版本中,向表A添加非空字段schoolId时,如果不提供默认值,会导致“伪空”状态,即字段名义上为NOT NULL,但实际存储的是隐式默认值(如0)。这种状态可能导致后续更新操作失败,如报错“Lost connection to MySQL server during query”。为避免此问题,建议采用三步法:首先添加可空字段,然后更新数据,最后将字段改为非空。理解“伪空”状态的原理有助于避免数据一致性问题。
2025-05-22 17:48:43
974
原创 EF Core 实体字段类型与 MySQL 数据库中常见字段类型的映射关系列表
以下是ai工具帮助整理的EF Core 实体字段类型与 MySQL 数据库中常见字段类型的映射关系列表。这个映射基于使用的 EF Core MySQL Provider
2025-04-25 10:12:27
1113
原创 MySQL 8.0 窗口函数
MySQL 从 8.0 开始支持窗口函数(Window Functions),这些函数允许对查询结果集的某一部分(称为“窗口”)执行计算,而不需要对结果进行分组(GROUP BY 会导致结果集被聚合)。窗口函数与普通聚合函数不同,它不会减少查询结果集的行数,而是为每行保留独立的计算结果。
2025-03-14 17:56:18
1334
原创 Elasticsearch 的 .net 驱动NEST :Fluent API 和 Object Initializer API 的异同
“Fluent API” 和 “Object Initializer API” 两种风格api的异同有哪些,适用于不同的使用场景, 各自的优势和缺点,以及使用建议。
2025-02-28 12:18:22
1241
原创 清理docker资源
清理 Docker 是一个常见需求,因为 Docker 的镜像、容器、网络和卷可能会占用大量磁盘空间。如果你发现 Docker 的磁盘空间不足,可以按照以下步骤来清理不必要的资源。
2025-02-28 09:30:11
1271
原创 辍啜惙掇裰剟
辍学 (chuò xué), 啜泣 (chuò qì) , 忧惙 (yōu chuò) , 拾掇 (shí duo) ,裰补 (duō bǔ) , 剟刺 (duō cì)
2025-02-20 10:03:49
1350
原创 将 AzureBlob 的日志通过 Azure Event Hubs 发给 Elasticsearch(3.纯python的实惠版)
厉害的小伙伴最终使用python脚本免费实现了这个功能
2025-01-17 15:08:34
1236
1
原创 将 AzureBlob 的日志通过 Azure Event Hubs 发给 Elasticsearch(2.换掉付费的Event Hubs)
将AzureBlob的日志通过AzureEventHubs发给Elasticsearch,但是EventHubs付费怎么办?这里有一些替代方案
2025-01-17 14:53:21
1408
原创 将 AzureBlob 的日志通过 Azure Event Hubs 发给 Elasticsearch(1.标准版)
将存储账户的日志(读写,审计,监控等)通过AzureEventHubs发送到我的elasticsearch,并且发送给elasticsearch的日志进行必要的加工,即从中解析出一些特别的字段,方便分析
2025-01-17 14:39:47
1808
原创 没有正确使用HTTP Range Request,导致访问Azure Blob存储的视频没有实现流式播放
组里的小伙伴在修改视频播放相关的代码,修改之前的方案使用CDN转发,可以实现流式播放,修改之后的代码因为没有正确的使用Http Range Request, 导致画面访问Azure Blob存储的视频没有实现流式播放,整理下线索在这里。
2025-01-14 14:02:35
1366
原创 MySQL Event Scheduler 详解
MySQL Event Scheduler 是一个强大的内置工具,适合处理周期性任务或时间触发任务。然而,需要注意性能优化、权限配置以及任务的复杂度管理。如果你的场景涉及跨系统或复杂逻辑,可以结合其他工具(如 Cron、触发器、存储过程)一起使用以达到更好的效果。
2025-01-14 11:35:17
2025
原创 C#中使用Math.Round 方法对数字做端末处理,以及默认银行家算法
在C#中,Math.Round 方法用于对数字进行舍入,提供了灵活的选项来指定舍入方式和精度。通过参数 MidpointRounding,可以指定不同的端末处理方法,这里介绍的不同方法的方法,着重说明的银行家算法。
2025-01-13 17:48:06
1950
原创 EFCore HasDefaultValueSql (续2 HasComputedColumnSql)
HasComputedColumnSql
2025-01-10 18:10:13
1023
1
原创 EFCore HasDefaultValueSql (续1 ValueGeneratedOnAdd)
Entity Framework Core (EFCore) HasDefaultValueSql 续1 ValueGeneratedOnAdd
2025-01-10 18:00:11
1442
1
原创 EFCore HasDefaultValueSql
Entity Framework Core (EFCore) 配置实体时,HasDefaultValue 方法的作用
2025-01-10 15:49:11
1472
原创 Docker compose 使用 --force-recreate --no-recreate 控制重启容器时的行为【后续】
Docker compose 使用 --force-recreate --no-recreate 控制重启容器时的行为【后续】
2025-01-09 18:56:19
1652
原创 Docker compose 使用 --force-recreate --no-recreate 控制重启容器时的行为
Docker compose 使用 --force-recreate --no-recreate 控制重启容器时的行为
2025-01-09 18:06:47
1962
原创 ssh 建立一个本地端口转发(Local Port Forwarding)
ssh 建立一个本地端口转发(Local Port Forwarding), 可以很方便的在不公开服务器端口的情况下,在本地安全访问到
2025-01-08 17:35:46
1111
原创 linux中临时提升交互权限,无需每次输入sudo
sudo -s:保持当前用户环境,方便又安全。sudo -i:完全切换到root用户环境,适合复杂操作。
2025-01-08 09:23:18
545
原创 SSH连接提示“Permission denied (publickey,password)”
使用Jenkins,ssh到指定服务器执行脚本时,当SSH连接提示“Permission denied (publickey,password)”时,通常是因为远程服务器未能验证提供的公钥,可能是因为公钥没有被正确添加到远程服务器的~/.ssh/authorized_keys文件中。
2024-08-27 10:46:24
6088
4
原创 hangfire_distributedlock
引子:项目中使用azure hangfire来处理定时任务,hangfire的机制要求在db中创建一些列内置表,其中包括 hangfire_distributedlock, 用于实现分布式锁,在一些环境中,当需要删除重建db时,偶尔会出现 hangfire_distributedlock 上的锁长时间未释放导致无法重建db, 目前还没找到导致死锁的具体原因,chatgpt给了一些规避策略,这里记录一下。
2024-08-16 17:59:54
919
原创 Qdrant - 启动服务,基础体验
qdrant初次见面,简单启动一个qdrant, 体验一下向量库的基本操作,集合管理,向量管理,向量查询等
2024-08-13 10:43:51
2311
原创 Qdrant 向量数据库 - 快照 snapshots
引子:数据库应用,备份还原很重要,Qdrant提供了快照功能,用于存档数据或复制现有部署,另外,Qdrant Cloud上还提供了 Backups 管理备份。 参考官网:Snapshots - Qdrant API:List all snapshots (collection) — Qdrant | API Reference这里简单整理下关于快照的使用,本地环境 快照文件所在目录: 创建成功后会在挂载的 “/home/pet/qdrant
2024-08-09 15:53:26
1265
原创 linux 命令历史扩展(Command History Expansion)
Command History Expansion !lineNo, !! !cp !$
2024-08-09 10:04:23
483
MCTS .NET Framework 2.0 Windows Applications
2008-11-06
软件设计文档国家标准_GB8567--88
2008-11-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅