- 梭哈式的拷貝代碼
問題:看到很多代碼都沒有使用到换途,但是拷貝工程的時(shí)候把所以的都拷貝了,然后稍微修改下膛薛,不管有用沒有听隐。 這樣子的代碼冗余太多,后期可讀性差哄啄。
反例:還有很多雅任,就不一一列舉了。
image.png
image.png
- mybatis 能用#就別用$
image.png
建議能用#就別用$ #會比較大程度的防止sql注入
-
System.out.println 打印日志
以后程序里面不要用System.out.println 這種來打印信息咨跌,如果都用這個(gè)來打印會照成性能低下沪么,程序阻塞。
image.png -
工具類什么的正常就不要寫main()方法锌半,建議寫測試類
image.png -
mybatis mapper.xml不建議寫超長sql
- 可讀性差
- 還包含復(fù)雜運(yùn)算禽车,嚴(yán)重影響性能。
可以采用Java來做運(yùn)算處理刊殉,不是很建議占用數(shù)據(jù)庫資源殉摔。
密鑰管理:硬編碼加密密鑰問題
危害: 密鑰硬編碼在代碼中導(dǎo)致的直接結(jié)果就是代碼在哪里,密鑰就在哪里记焊。研發(fā)人員電腦上存在密鑰逸月,如果電腦被攻擊則密鑰也會被泄漏。其次研發(fā)人員會因?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)存低。