Icarus 1.1.0 发布,Python3和Vue.js 实现的社区系统

来源: 投稿
作者: fy0
2018-09-30 10:17:00

简介

这是一个由 Python3.6 与 Vue.js 全家桶构建的现代社区系统。

Python,尤其是Python3做的开源社区系统很少,又多有年久失修,遂作此项目。

 

 

版本主题 - 安全

这个版本着重强化了一下程序的安全性,在新的密码机制下,后端密码将加盐哈希迭代 10 万次后存储。这个迭代次数是相关报告(2017 年)建议数字一万次的十倍。本来计划了更多的次数,但在百万次后我的低压 U 机器发生了明显的卡顿,考虑到个人 VPS 性能更差,因此就没有继续提升迭代次数了。

 

前端密码则以固定盐哈希迭代 10 万次后再向后端发送,这是为了防备非 https 环境下的中间人攻击,可以用于一些私人的或者是内网环境下的小破论坛场景,同时后端不再有机会得到明文密码。

 

版本主题 2 - 内容聚合

这个版本对文章列表的展示方式做了几乎完全的重构。从较为传统的“浏览板块列表 - 进入某个板块 - 浏览文章”的模式转为了一个页面布局同时展示板块列表和文章列表的模式。同时对论坛的全部内容做了一个简单的聚合。

 

关于Websocket 连接的移除

我使用的腾讯云CDN似乎仍然不能很好的支持ws回源,为了避免暴露服务器地址就砍掉了。

毕竟传统轮询又不是不能用(滑稽)。

当然如果可以用了,我还是会加回去,毕竟有ws能搞不少事情,也节省了资源。

 

升级指南

  • 通过backend/misc/upgrade下的升级脚本完成升级应该没什么问题,建议复制到backend目录下执行

  • 由于提醒机制的完全重做,用户的第一次重新登录会刷新提醒列表,会出现多个新提醒

  • 用于密码机制的重做,在默认配置下所有用户都应该通过邮箱重置密码后才能登录。可以手动关闭新的安全密码机制,即 config 中设定`USER_SECURE_AUTH_ENABLE = False` 来继续使用老机制。

  • 其实我估计大概根本没人需要这个升级指南吧……真的有人用了1.0版本吗?

 

附录:更新日志

新增:全新的文章列表页面,将板块列表、板块页面、最近文章页面合而为一

新增:新的密码安全机制 - issue s55, s131

新增:加入冷却时间机制,与用户和密码相关的接口现在都需要读秒 - issue s134

新增:在最近文章中提供了按权重降序(默认排序)、按更新时间降序(发布+回复时间中取最新的一个)、按发布时间降序三个选项 - issue s117

新增:在父级板块中可以通过勾选选项同屏显示子版块内容 - issue t123

新增:用户注册时现在会登记其注册IP(脱敏后),未来将用于账号安全和反spam - issue s133

重做:完全重构了提醒系统,代码减少的同时更容易理解了 - issue t130

优化:调整了签到按钮的样式和交互 - issue s127

优化:去除Firefox下的焦点虚线框 - issue s119

优化:使用异步的aioredis替代原redis组件

调整:移除了websocket相关内容,回退到轮询。在线人数统计也用redis替代 - issue t111

调整:移除了独立的板块列表、板块页面、最近文章页面

修正:Firefox下无法访问文章页面的问题 - issue b23

修正:图片头像有圆角,默认头像没有的问题 - issue b22

修正:编辑主题会写入多项管理日志的问题 - issue b19

展开阅读全文
19 收藏
分享
1 评论
19 收藏
分享
返回顶部
顶部