客戶端版本號也能讓游戲客戶端變得不安全,
移動端的游戲通常都會根據客戶端版本號決定是否要提示客戶端升級或下載新的資源,
開發通常都會使用 1.1, 1.3, 1.6 這樣的版本號,連入網路后和最新客戶端版本號進行比較,決定是否升級,
進行版本比較的代碼,使用了字串比較,
我們都應該知道對于字串來說: "1.2" 是大于 "1.1", "2.0" 是大于 "1.9" ,而且支持含有多個小數點的版本號,例如 "1.1.0" 是大于 "1.0.9" 的,
一行代碼,看上去很簡單不會有什么問題,
在實際專案中突發bug,客戶端研發把版本更新到1.10,而對于字串來說, "1.10" 是小于 "1.9"的,
結果是,所有線上老版本都沒有提示和進行更新,而服務端沒有向下兼容,老用戶完全無法運行,
所以,安全做法是強制要求更新客戶端模塊必須使用數字(INT)對版本號進行比較,如果是字串,要先決議成數字 INT 整數形態,再逐個比較,而不能直接使用字串比較,
更多安全技術,請關注公眾號,一起交流,一起進步,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/244836.html
標籤:其他
上一篇:CPU簡述
下一篇:編譯Linux內核出錯-----bison:not found/‘scripts/kconfig/zconf.tab.c‘ failed
