diff --git a/javascript/ql/src/Security/CWE-338/InsecureRandomness.qhelp b/javascript/ql/src/Security/CWE-338/InsecureRandomness.qhelp index 5835a8060c1..83786a014a0 100644 --- a/javascript/ql/src/Security/CWE-338/InsecureRandomness.qhelp +++ b/javascript/ql/src/Security/CWE-338/InsecureRandomness.qhelp @@ -36,7 +36,7 @@

For JavaScript in the browser, - RandomSource.getRandomValues provides a cryptographically + crypto.getRandomValues provides a cryptographically secure pseudo-random number generator.

@@ -69,7 +69,7 @@
  • Wikipedia: Pseudo-random number generator.
  • -
  • Mozilla Developer Network: RandomSource.getRandomValues.
  • +
  • Mozilla Developer Network: Crypto: getRandomValues().
  • NodeJS: crypto.randomBytes
  • diff --git a/javascript/ql/src/Security/CWE-338/examples/InsecureRandomness_fixed.js b/javascript/ql/src/Security/CWE-338/examples/InsecureRandomness_fixed.js index e3f96cf1680..54a3094932c 100644 --- a/javascript/ql/src/Security/CWE-338/examples/InsecureRandomness_fixed.js +++ b/javascript/ql/src/Security/CWE-338/examples/InsecureRandomness_fixed.js @@ -2,5 +2,7 @@ function securePassword() { // GOOD: the random suffix is cryptographically secure var suffix = window.crypto.getRandomValues(new Uint32Array(1))[0]; var password = "myPassword" + suffix; - return password; + + // GOOD: if a random value between 0 and 1 is desired + var secret = window.crypto.getRandomValues(new Uint32Array(1))[0] * Math.pow(2,-32); }