Skip to main content

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 'h​t​t​p​:​/​/​e​v​i​l​.​e​x​a​m​p​l​e​.​c​o​m​/​m​a​l​i​c​i​o​u​s​.​p​h​p'

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)

Source distribution for defang 0.5.3
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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page