glam/node_modules/.pnpm/@braintree+sanitize-url@7.1.1/node_modules/@braintree/sanitize-url
2025-12-21 00:01:54 +01:00
..
.github remove a,bihguous web-claims 2025-12-21 00:01:54 +01:00
src remove a,bihguous web-claims 2025-12-21 00:01:54 +01:00
.eslintignore remove a,bihguous web-claims 2025-12-21 00:01:54 +01:00
.eslintrc remove a,bihguous web-claims 2025-12-21 00:01:54 +01:00
.nvmrc remove a,bihguous web-claims 2025-12-21 00:01:54 +01:00
.prettierignore remove a,bihguous web-claims 2025-12-21 00:01:54 +01:00
CHANGELOG.md remove a,bihguous web-claims 2025-12-21 00:01:54 +01:00
LICENSE remove a,bihguous web-claims 2025-12-21 00:01:54 +01:00
package.json remove a,bihguous web-claims 2025-12-21 00:01:54 +01:00
README.md remove a,bihguous web-claims 2025-12-21 00:01:54 +01:00
tsconfig.json remove a,bihguous web-claims 2025-12-21 00:01:54 +01:00
vitest.config.ts remove a,bihguous web-claims 2025-12-21 00:01:54 +01:00

sanitize-url

Installation

npm install -S @braintree/sanitize-url

Usage

var sanitizeUrl = require("@braintree/sanitize-url").sanitizeUrl;

sanitizeUrl("https://example.com"); // 'https://example.com'
sanitizeUrl("http://example.com"); // 'http://example.com'
sanitizeUrl("www.example.com"); // 'www.example.com'
sanitizeUrl("mailto:hello@example.com"); // 'mailto:hello@example.com'
sanitizeUrl(
  "https&#0000058//example.com"
); // https://example.com

sanitizeUrl("javascript:alert(document.domain)"); // 'about:blank'
sanitizeUrl("jAvasCrIPT:alert(document.domain)"); // 'about:blank'
sanitizeUrl(decodeURIComponent("JaVaScRiP%0at:alert(document.domain)")); // 'about:blank'
// HTML encoded javascript:alert('XSS')
sanitizeUrl(
  "&#0000106&#0000097&#0000118&#0000097&#0000115&#0000099&#0000114&#0000105&#0000112&#0000116&#0000058&#0000097&#0000108&#0000101&#0000114&#0000116&#0000040&#0000039&#0000088&#0000083&#0000083&#0000039&#0000041"
); // 'about:blank'

Testing

This library uses Vitest. All testing dependencies will be installed upon npm install and the test suite can be executed with npm test. Running the test suite will also run lint checks upon exiting.

npm test

To generate a coverage report, use npm run coverage.