fanger
v0.3.1
Published
Defang and refang IoC
Readme
fanger
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 -gUsage
As a CLI
$ echo "example.com" | defang
example[.]com
$ echo "[email protected]" | defang
test@example[.]com
$ echo "https://example.com" | defang
hxxps://example[.]com$ echo "example[.]com" | refang
example.com
$ echo "test@example[.]com" | refang
[email protected]
$ echo "hxxps://example[.]com" | refang
https://example.comAs 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.comSupported 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[.]comtest.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=>hxxphttps=>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 | [email protected] |
| [@] => @ | test[@]example.com | [email protected] |
| (@) => @ | test(@)example.com | [email protected] |
| [dot] => . | test@example[dot]com | [email protected] |
| (dot) => . | test@example(dot)com | [email protected] |
| {dot} => . | test@example{dot}com | [email protected] |
| Partial | 1.1.1[.1 | 1.1.1.1 |
| Any combination | hxxps[:]//test\.example[.)com[/]path | https://test.example.com/path |
