# MDCPP 新系統計畫書 (更)新系統 ## 簡介 目標:(照優先度由先到後) 1. 自動備份 2. 教學區 3. 漏洞 <!-- 目前是A --> <!-- 我看到有兩個A哭喔 @Eason --> <!-- 先自動備份,再教學區A,最後漏洞B --> <!-- 所以沒有兩個A(其實是3個)ಥ_ಥ --> <!-- ༼ つ ◕_◕ ༽つ --> ## 目前OJ的漏洞 - 可以上傳任意檔案(未確認檔案類型) - session 資源消耗過大 - CSRF ## 自動備份 - 使用官方的備份程式 ## 新增教學區 ### A #### 簡述 使用OJ session 可以看目錄有寫關於API的設定位置,寫一個session api 嵌入原有的api #### 優點 - 對原OJ破壞性最小 #### 缺點 - 增加原session系統的負擔 - 不好管理session ### B #### 簡述 自己寫一個session管理,自己獨立一個session管理系統 #### 優點 - 減輕原OJ的負擔 #### 缺點 - 無法同步登入 ### C #### 簡述 將整個python嵌入golang裡,讓golang可以完全控制python #### 優點 - 兼具效能與原OJ的相容性 #### 缺點 - 工作量大 - 不確定穩定性 ## 漏洞修復 ### A #### 簡述 改進原本OJ #### 優點 - 工作量少 #### 缺點 - 無法改進效能問題 - 後續處理不易 ### B #### 簡述 自己新寫oj #### 優點 - 可以全部掌控功能 - 改善原有程式效能不佳的問題 #### 缺點 - 工作量極大 - 未經時間測試,無法保證穩定性 <!-- 資訊過少,優缺點? --> <!-- @Eason 這樣可以吧--> <!-- 回@Hugo:y --> #### 預想 - markdown 系統 - 排名系統 - 網頁沙箱系統 - 比賽系統 - 嵌入系統 :::spoiler --- {%hackmd JlCCKZ8OS5y6no-DXA0eTg %} --- ::: <!-- ## 預估時間 - 自動備份 - 教學區 - 漏洞 --> <!-- 說真的,可以的話不要估時間,不然沒完成就好笑了 @Hugo --> <!-- 阿你放這幹嘛🤔 --> <!-- | 項目 | 時長 | 預計開始| | -: | -: | -: | | 自動備份 | | | | 教學區 | | | --> <!-- 這應該放在 https://hackmd.io/JlCCKZ8OS5y6no-DXA0eTg --> <!-- 移好了 @Eason -->