※ 引述《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
个人的经验大致如上
有不足的部分烦请大家补充