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

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
defang-0.5.3.tar.gz 4.7 kB 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

Release history Release notifications | RSS feed

This release

0.5.3 This release

1 release file

0.5.2

1 release file

0.5.1

1 release file

0.5.0

1 release file

0.4.0

1 release file

0.3.0

1 release file

0.2.5

1 release file

0.2.4

1 release file

0.2.3

1 release file

0.2.2

1 release file

0.2.1

1 release file

0.2.0

1 release file

0.1.3

1 release file

0.1.2

1 release file

0.1.0

1 release file

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