| # 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`. |
|
|