Defangs and refangs malicious URLs
Usage
As a script: use the defang command to defang or “refang” content, supporting both stdin/stdout streams as well as to/from files on disk:
$ echo http://evil.example.com/malicious.php | defang hXXp://evil.example[.]com/malicious.php
As a library:
>>> from defang import defang >>> url = "http://evil.example.com/malicious.php" >>> defang(url) 'hXXp://evil.example[.]com/malicious.php'
We’ve added a few new keyword argument options:
>>> defang(url, colon=True) 'hXXp[:]//evil.example[.]com/malicious.php' >>> defang(url, all_dots=True) 'hXXp://evil[.]example[.]com/malicious.php' >>> defang(url, zero_width_replace=True) 'h\u200bt\u200bt\u200bp\u200b:\u200b/\u200b/\u200be\u200bv\u200bi\u200bl\u200b.\u200be\u200bx\u200ba\u200bm\u200bp\u200bl\u200be\u200b.\u200bc\u200bo\u200bm\u200b/\u200bm\u200ba\u200bl\u200bi\u200bc\u200bi\u200bo\u200bu\u200bs\u200b.\u200bp\u200bh\u200bp' # printed as 'http://evil.example.com/malicious.php'
Releases
- 0.5.3:
Merged in optional feature to split characters with the zero-width character.
- 0.5.2:
left in a debug print message in my last patch… removed it.
- 0.5.1:
refangs boxed in colons [:]
- 0.5.0:
added new options to defang
all_dots=True will turn all dots into [.] and not just the one before the TLD
colon=True will translate http:// into http[:]// as well as other protocols
- 0.4.0:
added support for URIs with IPv4
- 0.3.0:
added some regex fixes and arbitrary protocol defanging
Metadata
Release files for defang 0.5.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| defang-0.5.3.tar.gz | 4.7 kB | Without provenance | Details |
Release files / defang-0.5.3.tar.gz
| Download URL | defang-0.5.3.tar.gz |
|---|---|
| Size | 4.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
86aeff658d7cd4c3b61d16089872e1c1f0a1b7b3c64d4ca9525c017caeb284d7
|
|
BLAKE2b-256 checksum How to use checksums |
c2d6a43e61a63054a1cb6f6ba0490dd5079127d2cffafb6707b562497a91bd4e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/41.0.1 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/3.5.3
|
Security for defang 0.5.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.