fanger
TypeScript icon, indicating that this package has built-in type declarations

0.3.1 • Public • Published

fanger

npm version Node.js CI CodeFactor Coverage Status

fanger is an npm package for defang and refang IoC.

What are defang and refang

Defang means to change a part of IoC to make inaccessible or unclickable. (e.g. example.com => example[.]com)

Refang means to revert a defanged IoC to the original one. (e.g. example[.]com => example.com)

Installation

npm install fanger -g

Usage

As a CLI

$ echo "example.com" | defang
example[.]com

$ echo "test@example.com" | defang
test@example[.]com

$ echo "https://example.com" | defang
hxxps://example[.]com
$ echo "example[.]com" | refang
example.com

$ echo "test@example[.]com" | refang
test@example.com

$ echo "hxxps://example[.]com" | refang
https://example.com

As a library

import { defang, refang } from "fanger";

const text = "example.com";
console.log(defang(text));
// example[.]com

const defangedText = "example[.]com";
console.log(refang(defangedText));
// example.com

Supported defang/refang techniques

Defang

The following defang techniques are supported.

IPv4

  • 1.1.1.1 => 1[.]1.1.1

The first dot of an IPv4 will be replaced with [.].

Domain

  • example.com => example[.]com
  • test.com.example.com => test[.]com.example[.]com

A dot before a label which is registered as a TLD will be replaced with [.].

HTTP scheme

  • http => hxxp
  • https => hxxps

Supported refang techniques

The following refang techniques are supported.

Techniques Defanged Refanged
Remove spaces 1.1.1 . 1 1.1.1.1
[.] => . 1.1.1[.]1 1.1.1.1
(.) => . 1.1.1(.)1 1.1.1.1
{.} => . 1.1.1{.}1 1.1.1.1
\. => . example\.com example.com
[/] => / http://example.com[/]path http://example.com/path
[:] => : http[:]//example.com http://example.com
[://] => :// http[://]example.com http://example.com
hxxp => http hxxps://google.com https://google.com
[at] => @ test[at]example.com test@example.com
[@] => @ test[@]example.com test@example.com
(@) => @ test(@)example.com test@example.com
[dot] => . test@example[dot]com test@example.com
(dot) => . test@example(dot)com test@example.com
{dot} => . test@example{dot}com test@example.com
Partial 1.1.1[.1 1.1.1.1
Any combination hxxps[:]//test\.example[.)com[/]path https://test.example.com/path

Readme

Keywords

none

Package Sidebar

Install

npm i fanger

Weekly Downloads

1,323

Version

0.3.1

License

MIT

Unpacked Size

18.1 kB

Total Files

17

Last publish

Collaborators

  • ninoseki