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