※ 引述《lur (垃圾東西)》之銘言:
: 如提,因為客戶的白箱測試掃出這些hardcode password的critical
: 雖然我覺得這應該只是一個參數
: 但是我真的不知道怎麼解釋才比較好懂
: 如果有人願意幫忙的話,我再把程式碼寄到站內信
: 拜託大家了Q_Q
先參考OWASP或CWE的相關文件
了解什麼是hard coded password和它的risk
https://www.owasp.org/index.php/Use_of_hard-coded_password
https://cwe.mitre.org/data/definitions/798.html
https://cwe.mitre.org/data/definitions/259.html
解決方法大概如下
1.不要把使用者/密碼等相關設定 hardcode在程式碼中
這種做法會讓有辦法接觸或反編譯的人在程式碼上拿到關鍵的密碼
管理和開發人員 應該分層管理才對
2.把username和password加密,不要用明碼表示
3.不管是把密碼存在資料庫或屬性資源包上
鍵值的部分不要有關鍵字
Ex:
config.properties
...
SERVER.USER_NAME=XXX
SERVER.PASSWORD=XXX
...
不建議在鍵值的命名上,讓人一目了然這個參數就是密碼
這做法等於告訴他人:你的密碼就是儲存在這個地方
相關的關鍵字大概是:password, pwd, pw...etc
這幾個關鍵字都會被程式碼分析程式歸類為有風險的keywords
個人的經驗大致如上
有不足的部分煩請大家補充