Icarus 1.1.0 釋出,Python3和Vue.js 實現的社群系統
簡介
這是一個由 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