大象笔记

知者行之始,行者知之成

海外站被攻击,cloudflare 自定义防护规则创建策略

周六的凌晨被一堆网站服务器宕机报警邮件吵醒。这两周刚经历了国内网站被广东电信日均 40 万 PCDN IP 轰炸攻击, 没想到海外站又被攻击了。查看 Cloudflare 仪表盘,发现流量暴增。 第一次遇到海外站的流量攻击,我感觉处理策略跟国内站有些不同,特此记录一下。 虽然大家都知道 cloudflare 很强大,但是对于非技术人员来说,要能梳理出来防护策略,我感觉还是有点难。 我这周也提交了阿里云 ESA 工单,我发现售后工程师也业余的不行,给出的策略都反逻辑的,如果是没有经验的客户直接使用,会导致正常流量被误封。这是没有办法的事情,处理攻击还是需要稍微了解一点开发和运维的知识。 首先确认 ...

阅读全文...

VSCode 里自动 Code Review 太方便了,被 github copilot AI 羞辱总比被领导羞辱好

昨天在 VSCode 里写代码,不知道乱点了哪里,突然自动出现了 Code View 建议,说我修改的几处代码存在逻辑漏洞。我定睛一看,还真是,老老实实地,按照 github copilot 的建议把代码修复了。但是,昨天太忙,就没深究到底这个功能是怎么触发的。 今天忙完手头的紧急需求,我就搜索了一下,果然找到了。 在左侧的 git 视图里,当代码发生变更时,就能看到这个 Code Review 的按钮。点击,就会出现 Code Review 建议。(需要等待个10几秒,官方号称 30 秒以内出结果)。例如,下面就是 AI 的代码审查建议: 可以一键应用 AI 推荐的代码修改。跟自动补全 ...

阅读全文...

手机分期月租金计算器 H5 网页版,省去微信小程序备案和认证的麻烦

昨晚吃完饭,刚准备放松一下,有一位老板加我微信,说想开发一个 H5 网页版本的手机租赁用的租金计算器。需要能输入手机结算价格,选择首付比例(三成,四成,或者五成),和分期期数(6期,9期),能自动计算出每月的还款金额。之前开发了很多微信小程序版本的手机租金计算器,而 H5 网页版本的还是第一次。感觉也不是很麻烦,逻辑都是一样的,只不过前端的界面不太一样而已。 在 Gemini 3 Pro 的加持下,一个小时就搞定了前端页面及逻辑。而且用 Vue 重写了一版,代码逻辑更清晰,主要是为了方便后续维护修改。界面效果如下: 又花了一个小时,实现了一个管理后台,用于自定义配置参数。这样老板要调整计算参 ...

阅读全文...

Golang Gorm 同时使用 Preload 和 Left Join 进行联表查询并过滤数据

需求背景 我有两个 MySQL 数据表: 员工表 staff 薪资表 salary。这里有员工 ID 字段作为外键关联员工表。 我定义的薪资 Struct 结构体,包含了 embedded 字段 Staff,用于关联员工信息: type Salary struct { gorm.Model StaffId uint Staff Staff `gorm:"foreignKey:StaffId"` Amount float64 } 我需要在返回薪资信息列表时,同时返回员工的详细信息(通过 Preload 预加载实现),并且根据员工的某些字段进行过滤(通过 L ...

阅读全文...

阿里云 ESA 自定义 WAF 规则拦截广东海量 IP 攻击,及流量特征分析

昨天早上四点半,服务器又被刷爆了,CPU 持续百分百。从 Nginx 日志看,毫无规律。早上被一堆报警短信吵醒,眼都睁不开图片就开始设置防火墙规则。我投降了,不得已上了阿里云 ESA(边缘安全加速 Edge Security Acceleration)。因为网站在国内,用 Cloudflare 影响国内用户体验,选择阿里云 ESA 也是无奈的选择。可以看到不到 30 万的请求,只有 1 万多的有效请求,这里面还有部分是我测试时放开了规则进来了部分垃圾流量。 靠临时的 ESA WAF (即 Web 应用防火墙)规则扛住了。虽然不太严谨,但是目前还能让我喘口气 。我只能通过 WAF 里新建自定义 ...

阅读全文...

手机 sim 卡无法识别之后,我突然慌了

今天早上上班真是走了大运,先是电脑ssd硬盘io异常,卡得无法动弹。然后想用手机查查原因,发现sim卡无法识别了🥴 之前也遇到过,往常重启一下手机系统就恢复了,我以为是红米k80的品控问题,也没有在意。今天重启了几次都无法识别,😵‍💫,我突然慌了。 因为我突然意识到,没有sim卡,即便有WiFi,你也收不到别人的电话和各种通知短信。正好这两天有重要的短信通知要收😂 顾不上电脑硬盘了,我先去找同事借卡针,试图重新插拔 sim 卡解决。借了一圈没借到,最后一个硬件同事给了我一个小镊子,尖头的,正好可以把 sim 卡槽捅出来。插拔了几次也不行,依旧无法识别。 可能太慌乱,我认定是手机嘎了,开始在网上 ...

阅读全文...

明道云数据上报 webhook 链接的获取方法,方便 MQTT 数据转发

很多客户不想用自己的服务器存储物联网硬件上报的日志,而是想通过明道云这类三方的智能多维表格的方案来存储日志。 估计是担心我们后续乱收费吧 😄 其实我感觉现在服务器反而更便宜,至少不会乱收费。麻烦的是,服务器可能有点人工运维成本。客观的说,这种三方表格类存储确实省心 😅 反正客户说的都对,让怎么搞就怎么搞吧。 这里主要记录一下,如何获取明道云数据上报 webhook 链接。自己不常用,久了就忘记从哪里查看 webhook 链接了。 获取方法 首先,到明道云后台 https://www.mingdao.com 找到应用列表,选中指定的应用,查看其对应的工作流 在工作流界面,找到 webhook ...

阅读全文...

自动创建测试数据的库 go-faker

最近在使用 Go 开发一个新闻发布的模块,但是我为了急于看到界面效果,不想先实现后台录入功能, 想先自动创建一批测试数据,直接看 UI 效果。于是找了一个自动生成测试数据的库。 go-faker https://github.com/go-faker/faker 非常适合网站的新闻模块或者博客模块,需要批量创建几百条测试数据的场景。也支持姓名,邮箱,手机号,IP 地址之类的数据类型。之前还专门写过一个小程序来生成测试数据,参考:随机生成身份证号,手机号,邮箱地址的微信小程序。 印象中 PHP Laravel 框架本身就内置了这个功能,但是 golang gin 还是太简陋了,需要自己动手实现。 ...

阅读全文...