| # sanitize-url | |
| ## Installation | |
| ```sh | |
| npm install -S @braintree/sanitize-url | |
| ``` | |
| ## Usage | |
| ```js | |
| 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://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( | |
| "javascript:alert('XSS')" | |
| ); // 'about:blank' | |
| ``` | |
| ## Testing | |
| This library uses [Vitest](https://vitest.dev/). 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`. | |