Re: [問題] 請問程式碼的問題this.password=password

作者: zephyrhymn   2017-12-04 10:47:01
※ 引述《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
個人的經驗大致如上
有不足的部分煩請大家補充
作者: KeyFSN ( ~☼☽✩☁~ )   2017-12-04 14:32:00
不覺得3有特別意義 反而會增加後續維護困難度
作者: Soarwind (獨孤)   2017-12-04 21:17:00
密碼變數不用password那要用什麼? 變數不就是要有意義?
作者: jej (晃奶大馬桶)   2017-12-04 21:21:00
fortify這些codereview軟體經常有令人驚訝的警告 要問為甚還是只能問原廠 還曾遇過Singleton被當資安問題 囧
作者: IhateOGC (我討厭)   2017-12-09 21:01:00
如果只是預設密碼我是覺得還好
作者: ssccg (23)   2017-12-09 22:32:00
怎麼會不知道為什麼,解釋都有寫啊,只是認不認同它的規則當然有時就是單純的誤判

Links booklink

Contact Us: admin [ a t ] ucptt.com