【发布时间】:2021-07-02 08:57:04
【问题描述】:
我正在使用 Math.random() 函数来获取从 0 到“最大”数范围内的整数。 但根据 sonarqube 的说法,这是“安全热点”中等问题。
private getRandomInt(max) {
return Math.floor(Math.random() * Math.floor(max));
}
【问题讨论】:
-
相关的,可能的欺骗:stackoverflow.com/questions/62036514/…
-
在node.js中可以使用crypto模块,例如
crypto.randomInt:nodejs.org/docs/latest/api/crypto.html在浏览器中可以使用window.crypto.getRandomValues:developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues -
这预期有安全的随机数生成吗?因为一种可能的解决方案是完全忽略 SonarQube 警告并禁用它,如果它没有意义。很多时候,您可能只需要某种随机数据,而不必与安全相关。但如果你用它来生成会话 ID 或其他东西,那么你确实需要更好的 pRNG。
标签: javascript node.js