安全備忘

ps:我的整理備忘接口

 

1.全部資產的轉移,必須驗證資產全部者的簽名。若是沒有簽名,要確保全部者的資產沒有減小和增長,只是兜了一圈,左口袋至有口袋。return

2.資產在轉移過程當中不能出現小於等於0的狀況。全部涉及金額的接口,要在接口處就要排除金額小於等於0的狀況。ps

3.操做合約存儲區時必定是先算須要更改的值,將須要更改的數值明確後,再進行存儲區的修改,存儲區的put操做要在整個運算邏輯最後處理。mint

4.若是一個接口涉及3個存儲區的調整,要保證這3個存儲的修改邏輯中間沒有return,要在接口入口處就將全部可能return的狀況都排除掉,而後再計算存儲區應該調整的值,最後存儲區統一改刪。

5.若是存在跨合約調用,必定要有驗證合約調用結果的邏輯。例如拍賣合約中調用了CGAS的tansfer,那必定要對調用transfer的結果(true仍是false)進行不一樣邏輯的處理。

6.全局資產轉入映射成nep5資產(cgas的mintTokens)和 利用交易id來進行資金的變動(sell合約的setmoneyin)都要記錄排除已經使用的txid,以防一個txid屢次套錢。

相關文章
相關標籤/搜索