- 梭哈式的拷貝代碼
問題:看到很多代碼都沒有使用到,但是拷貝工程的時(shí)候把所以的都拷貝了,然后稍微修改下,不管有用沒有。 這樣子的代碼冗余太多,后期可讀性差。
反例:還有很多,就不一一列舉了。

image.png

image.png
- mybatis 能用#就別用$

image.png
建議能用#就別用$ #會(huì)比較大程度的防止sql注入
-
System.out.println 打印日志
以后程序里面不要用System.out.println 這種來打印信息,如果都用這個(gè)來打印會(huì)照成性能低下,程序阻塞。
image.png -
工具類什么的正常就不要寫main()方法,建議寫測試類
image.png -
mybatis mapper.xml不建議寫超長sql
- 可讀性差
- 還包含復(fù)雜運(yùn)算,嚴(yán)重影響性能。
可以采用Java來做運(yùn)算處理,不是很建議占用數(shù)據(jù)庫資源。
密鑰管理:硬編碼加密密鑰問題
危害: 密鑰硬編碼在代碼中導(dǎo)致的直接結(jié)果就是代碼在哪里,密鑰就在哪里。研發(fā)人員電腦上存在密鑰,如果電腦被攻擊則密鑰也會(huì)被泄漏。其次研發(fā)人員會(huì)因?yàn)闆]有安全意識,將代碼上傳至各類私有云盤或家里電腦又或是U盤中,導(dǎo)致風(fēng)險(xiǎn)面增大。更有甚者,將代碼上傳至GitHub,而忽略了代碼中的硬編碼密鑰,從而被惡意著利用
案例:比如這次代碼檢驗(yàn),我們就把對應(yīng)密鑰信息給暴露給檢測商了。廠商可以直接使用該密鑰。
解決方案:核心點(diǎn)在于密鑰需要和代碼分離,盡可能少的讓密鑰被人接觸到
- 環(huán)境變量/配置文件
- 通過配置管理中心來管理配置

image.png
- 弱加密問題
問題: 使用 DES 算法生成的密鑰短,僅有56位,運(yùn)算速度較慢,而且DES算法完全依賴密鑰,易受窮舉搜索法攻擊
解決辦法: AES算法替代DES算法,AES最少可生成128位,最高256位的密鑰,且運(yùn)算速度快,占用內(nèi)存低。

