想给高中学校做个表白墙,让同学们能匿名表白
主要功能:
- 表白发布:用户可以匿名发布表白内容
- 敏感词过滤:系统会自动检测敏感内容,根据严重程度用*代替或者直接拦截
- 手机登录:用手机验证码登录,60秒内只能发一次验证码
- 置顶功能:管理员可以置顶重要的表白内容
- 封禁机制:对违规用户和IP进行封禁,还有等级系统,违规次数多了封禁时间更长
- 申诉功能:被封禁的用户可以提交申诉
- 管理后台:管理员可以审核、删除、置顶内容,还能管理封禁
- 字体切换:支持不同字体,让界面更有感觉
- 请求限制:防止刷帖,每分钟最多60个请求
还有用户档案记录,会记录用户的违规历史
后端用Flask,前端用纯HTML+CSS,数据用JSON文件存,还用了阿里云短信服务
我主要做了这些:
1. 敏感词系统:分了不同等级,一级敏感词用*代替,二级的要审核,三级的直接拒绝,还会记录违规
2. 封禁系统:分等级封禁,第一次60分钟违规3次,第二次6小时5次,最长封禁7天
3. 登录系统:手机验证码登录,用阿里云短信服务发验证码
4. 后台管理:可以审核内容、置顶、删除、封禁,还有副管理员权限
5. 申诉系统:被封禁的可以申诉,管理员处理后自动解封
6. 防刷机制:IP限制,每IP每分钟最多60请求
7. 数据持久化:用JSON文件存表白数据、配置、敏感词库
8. 跨平台兼容:Windows和Linux都能用,Windows下不用文件锁
遇到的问题:
- 文件并发写入问题,Windows下没有fcntl,单独做了处理
- IP封禁和用户封禁要分开,后来搞了基于IP和基于用户标识的双重封禁
- 敏感词库要分分类,后来搞了色情、暴力、政治、赌博、毒品等分类
整个项目从内测版到现在Beta版功能越来越完整,学校里很多同学也在用,两周前刚刚更新版本,用的腾讯云轻量应用服务器