secrets.js 826 B

123456789101112131415161718192021222324
  1. "use strict";
  2. /**
  3. * @license
  4. * SPDX-License-Identifier: Apache-2.0
  5. */
  6. Object.defineProperty(exports, "__esModule", { value: true });
  7. exports.ensureTokenIsValid = exports.secretToken = void 0;
  8. /**
  9. * A secret token that must be passed to safe type constructors. It is only
  10. * accessible from within safevalues, ensuring that unrestricted safe type
  11. * creation is only possible within safevalues. In particular, this prevents
  12. * forgery such as `safeHtmlValue.constructor('javascript:evil')`.
  13. */
  14. exports.secretToken = {};
  15. /**
  16. * Asserts that the given token matches the secret safevalues token. An
  17. * exception is thrown if that is not the case.
  18. */
  19. function ensureTokenIsValid(token) {
  20. if (token !== exports.secretToken) {
  21. throw new Error('Bad secret');
  22. }
  23. }
  24. exports.ensureTokenIsValid = ensureTokenIsValid;