# 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:[email protected]"); // 'mailto:[email protected]' | |
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`. | |