作者zephyrhymn (是)
看板java
标题Re: [问题] 请问程式码的问题this.password=password
时间Mon Dec 4 10:47:01 2017
※ 引述《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
个人的经验大致如上
有不足的部分烦请大家补充
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.96.116.21
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/java/M.1512355628.A.50B.html
1F:→ KeyFSN: 不觉得3有特别意义 反而会增加後续维护困难度 12/04 14:32
2F:推 Soarwind: 密码变数不用password那要用什麽? 变数不就是要有意义? 12/04 21:17
3F:→ jej: fortify这些codereview软体经常有令人惊讶的警告 要问为甚 12/04 21:21
4F:→ jej: 还是只能问原厂 还曾遇过Singleton被当资安问题 囧 12/04 21:23
5F:推 IhateOGC: 如果只是预设密码我是觉得还好 12/09 21:01
6F:→ ssccg: 怎麽会不知道为什麽,解释都有写啊,只是认不认同它的规则 12/09 22:32
7F:→ ssccg: 当然有时就是单纯的误判 12/09 22:32