分类下相关文章
2025-06-12 · 阅读 121 · 字数 591
这两天在用 golang 开发一个论坛的后端接口,遇到了一个 XSS 攻击的场景。 发帖时,前端传递过来的 Content 是 html,经测试发现,如果不对 html 内容进行清理,会导致 XSS 攻击。😰 即,帖子内容中包含了恶意的 js 代码,攻击者可以通过这个 js 代码来窃取用户的 cookie 或者执行其他恶意操作。 什么是 XSS 攻击? XSS(Cross-Site Scripting)攻击是一种常见的网络安全漏洞,攻击者通过在网页中注入恶意脚本代码,使得这些代码在其他用户的浏览器中执行,从而窃取用户信息、劫持会话等。 XSS 攻击通常发生在用户输入未经过滤或清理的情况下,攻击 ...
2025-05-30 · 阅读 281 · 字数 1879
昨晚接到紧急需求,需要增加一个搜索功能。当时在家里,感觉很简单的需求, 随便改改,直接发布到线上服务器就行,毕竟我大 golang 只要能编译通过,基本不会有大问题 😏。 但是,不出意外,出了意外。自动发布脚本,在重启 systemd 服务后, 使用 systemctl status 查看状态,发现 golang 服务没有启动成功。 通过命令行单独启动 go 服务,发现报错: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found 还好,我发布前,将可执行程序备份了一份。。。挂了一分钟,我就悄悄恢复了,险些提桶跑路。 ...
2025-05-26 · 阅读 284 · 字数 2253
最近在使用 golang gin 开发一套公司内部的人事管理系统,但是发现权限管理比之前搞的系统要复杂不少, 所以我想借机了解一下传说中的 Casbin 权限控制库,看看是否可以借鉴一下。 涉及权限控制的需求场景 人事部门负责人需要能看到所有的人事数据 人事部门的普通 HR,只能看到部分部门的人事数据。即只能看到自己负责的部门数据 IT 部门或者行政部门指定人员,能看到资产管理模块的数据。即每个员工有哪些名下资产,显示器,主机,桌子椅子之类的。方便离职时进行资产回收。 部门负责人能看到自己部门的所有员工数据,除了薪资相关的字段。且只有看的权限。不能修改和删除。 员工个人能通过企业微信的授权登 ...
2025-05-12 · 阅读 441 · 字数 855
基于自建应用、自有系统。 腾讯官方文档 概述 - 文档 - 企业微信开发者中心 https://developer.work.weixin.qq.com/document/path/90193 通讯录同步相关接口,可以对部门、成员、标签等通讯录信息进行查询、添加、修改、删除等操作。 企业如果需要从自有的系统同步通讯录到企业微信,需要使用通讯录同步secret。 自建应用、代开发应用、第三方应用在提供功能时,往往需要获取通讯录,开发者可查阅成员、部门、标签相关的接口说明。注意,自建应用、代开发应用、第三方应用仅能读取通讯录,不能编辑,且仅能读取可见范围内的通讯录。 2022年8月15日起,通过 ...
2025-05-12 · 阅读 268 · 字数 471
使用 golang 开发的大赛报名截止时间功能,发现一个奇怪的 bug,就是截止时间判断不准确。 现象是,截止时间设置的是今天上午十点,但是判断函数只有在下午 18 点时才生效。 我第一反应是大概就是时区问题。 未指定时区前 now := time.Now() registerStartTime, err := time.Parse("2006-01-02 15:04:05", registerStart) registerEndTime, err := time.Parse("2006-01-02 15:04:05", registerEnd) fm ...
2025-04-21 · 阅读 505 · 字数 771
使用 golang gin 实现一个前后端分离的后台管理系统,管理员分为: 普通管理员 超级管理员 超级管理员可以访问一些普通管理员没有权限访问的接口,同时即便同一个接口两种管理员都能访问,但是可以操作的资源不同。如何设计路由及中间件可以实现清晰简洁的权限管理呢? 例如,超级管理员是我的账号,而客户也能登录这个后台,即客户是普通管理员。我作为超级管理员可以看到后台所有的设备,而客户作为普通管理员只能看到自己所属的设备,且只能对自己的设备进行远程锁机,而不能对其他客户的设备进行操作。 我实在是懒得自己想了,就问了一下 DeepSeek。DeepSeek AI 给出的方案,确实比我目前用的单一 ...
2025-04-09 · 阅读 517 · 字数 671
我想开发一套企业内部使用 OA 系统,使用 golang gin 开发,让 AI 推荐了几个流程管理的库,即工作流引擎。 发现大部分找到的都是 Java Sprint Boot 的实现,但是我还是希望用 golang gin 去实现。毕竟 golang gin 目前用的最顺手,也积累了大量的内部功能库,而且服务器资源占用低。加上是集团内几个公司一块使用,使用现成的开源实现,也达不到要求,估计也很难改。还不如自己基于工作流引擎模块去自己实现。 但是看了几个感觉比较复杂。理解成本有点高,例如: GoFlow:Workflow 引擎, https://github.com/s8sg/goflow/ ...
2025-03-19 · 阅读 547 · 字数 816
遇到一个存储大量在线设备日志的需求。设备日志通过 MQTT 上传,服务端使用 golang 订阅 MQTT 主题来获取日志,然后存储到 MySQL。之前,为了偷懒,使用了 InfluxDB 2 来存储这里时序数据,但是,经历了一个项目之后,我觉得还是 MySQL 好用。毕竟 influxdb 2.0 的查询语法很不习惯,而且我没有运维经验,这玩意要花时间去了解如何运维,这些时间花费的非常不值。能用最顺手的技术实现,而且稳定可靠,那么就不要折腾。 按照我的估算,按月存储日志,可以把每个表都日志量控制在 1000 万条以内,那么就不需要按天或按周存储了。 今天能把这个功能搞定,就很不错了。也算是设 ...
2025-02-25 · 阅读 434 · 字数 478
今天在开发的系统,需要导出大赛参赛作品的所有打分结果。 此前的做法是,指定 Excel 的 Cell 标识,然后写入指定单元格。但是这种做法非常不容易维护,例如,要新增一列,插入到邮箱那列的前面,那么插入后,就需要对应的修改后面的每一列的编号,非常麻烦。 values := map[string]string{ "A1": "年份", "B1": "参赛队名", "C1": "省份", "D1& ...
2025-02-14 · 阅读 2260 · 字数 414
要在服务器的后台接口上,增加一个发送邮件的接口。每天调用的频率也不高。 最终选择了这个库 https://github.com/go-gomail/gomail Star 4.5K,近十年没有更新了。。。但测试没有任何问题,而且也完全满足我的需求。 安装 > go get gopkg.in/gomail.v2 代码 package main import ( gomail "gopkg.in/gomail.v2" ) func main() { msg := gomail.NewMessage() msg.SetHeader("From&quo ...
2024-11-26 · 阅读 1513 · 字数 633
在网站登录时,需要增加一个验证码图片。不需要复杂的验证,简单的数字,或者英文字母验证即可。 找了一下发现一个 golang 的实现。 三方库 https://github.com/mojocn/base64Captcha 效果如下: 支持: 数字验证码 公式 字母 汉字 音频 安装 > go get -u github.com/mojocn/base64Captcha 生成验证码图片 实际上是生成了一个 base64 格式的图片,测试了一下,大小为 1K 左右。 以 golang gin 框架为例: import "github.com/mojocn/base64Cap ...
2025-04-06 · 阅读 978 · 字数 658
书接上回,自从基于 cobra 完成了 Golang AST 解析 struct 字段,自动生成 CRUD 代码,又添加了部分功能。这个自动帮我搬砖的代码生成器基本完成了。😊 但是,在项目中使用的时候,还是有点小瑕疵,就是不能在 fish shell 中自动补全命令,主要是我创建的命令,命令我自己都记不住🥲。每次靠输入 cobra 帮助参数来查看,也略显麻烦。于是,我想能否像 smug 一样,实现自动补全命令。查了一下,果然可以: 添加 fish 自动补全 cobra 内置了针对各种 shell 的自动补全功能。诸如,fish,bash,zsh,powershell。 例如,我的搬砖工具名为 ...
2024-11-19 · 阅读 1018 · 字数 1871
上周基于 cobra 实现了一个 golang 的命令行工具, 参考:golang 快速开发命令行工具的神器 cobra & cobra cli,实现了一键生成 go gin 后台,及 react ant design 前端的 CRUD 工具。 大大提升了枯燥的 CRUD 劳作效率。并在两个项目上试水成功。 但是,还有一点不够完美,就是目前的 ant design 前端部分,只是个界面架子。 具体的编辑字段,还得手动一个个添加。这周又接到了一个无数 CRUD 的搬砖项目,我觉得有必要把这部分功能加上了。 这样才能无愧于我的“搬砖之王”的称号。 功能需求 即,使用 golang 解析一个 ...
2024-11-15 · 阅读 634 · 字数 498
之前为了使用 excelize 的一个新功能, golang excelize 自动解析 excel 单元格的字体颜色, 将 golang 由 1.18 升级到了 1.23。但是遇到了 gorm 的一个 bug。 问题代码 var items []models.Article db := models.DB.Model(&models.Article{}). Preload("Category") db = db.Session(&gorm.Session{}) db.Order("id desc"). Limit(limit) ...
2024-11-19 · 阅读 1032 · 字数 1119
最近想用 go 开发一个自动生成 gin CRUD 前后端代码的命令行工具,实现跟 python django 类似的快速搭建 admin 后台的体验。 于是找了一个类似的脚手架工具 nunu,但是这个项目的代码组织风格并不是我喜欢的类型,且没有 ant design 前端相关的模板,所以我打算自己重造这个轮子。动手之前,我粗略浏览了一遍 nunu 这个项目的代码,发现里面使用了 cobra 这个库,非常便捷。 在参加烟台八角湾数字经济大会时,边开发,边整理了这篇文档。倪光南院士在上面大讲 AI,我在下面写 CRUD。。。我们都有美好的未来 🥲 cobra 是什么 如果经常需要用 golang ...
生活 | 跑步 清单 足球 鲁班 探索 孤独的美食家 驾驶 电视剧 收纳 奶爸 健康 game 电影 周末 joke |
---|---|
Geek | 健身 Laravel Git Vim MySQL Linux UI Windows SVN 纪录片 管理 Shell 游记 工具 手机 BackboneJS 自建博客 Mac DNS Tornado CDN Django Python AngularJS 理财 前端 Nginx 爬虫 Redis Javascript Browser 浏览器 推广 OAuth CSS PHP Social Networks 安全 运维 创业 杂记 VueJS Android Image IDE Java ReactJS 数据分析 SQLite RESTful 读书笔记 家电 ecshop Vagrant wordpress docker SEO GTD magento mongodb nodejs weex 冷知识 ruby iOS 微信小程序 AI CMS 快应用 backpack 广告联盟 OA 短信 UWP Win CSharp Tampermonkey graphviz 钉钉 WPS 数据字典 微信公众号 Fuchsia Adobe XD SQL Server thinkphp 代码规范 商业模式 Flutter 头痛的问题 serverless 视频制作 国际化 golang 服务器 Kotlin 网站建设 5G 笔记本 图片 spark spring 物联网 InfluxDB 图像识别 postgre rust 提示词 |
成长的烦恼 | 闲言碎语 待产 不睡觉 写作 程序员 孙心然语录 原则 大鸿语录 |
地球 | 植物 时间 中文 赚钱 国家地理 烟台 一生伏首拜阳明 emoji 弟子规 英文 国际贸易 |