8000 GitHub - Codefend/webpack-plugin-codefend: Webpack plugin for code obfuscation using Codefend, providing protection for your code regardless of the programming language or framework.
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Webpack plugin for code obfuscation using Codefend, providing protection for your code regardless of the programming language or framework.

License

Notifications You must be signed in to change notification settings

Codefend/webpack-plugin-codefend

8000

Repository files navigation

webpack-plugin-codefend

GitHub Workflow Status NPM Bundlephobia Node version NPM

Webpack plugin for code obfuscation based on Codefend

Installation

npm install -D webpack-plugin-codefend

Usage

Step 1: Configuration

Add to your webpack.config.js:

Default options

import { WebpackPluginCodefend } from "webpack-plugin-codefend";

export default {
  entry: ...
  output: ...,
  plugins: [new WebpackPluginCodefend()],
};

Custom options

import { WebpackPluginCodefend } from "webpack-plugin-codefend";

export default {
  entry: ...
  output: ...,
  plugins: [
    new WebpackPluginCodefend({
      transformation:{
            // the prefix to use for each obfuscated variable
            prefix: "Ox",

            // control how a specific variable should be obfuscated
            static: [
              {
                from: "predefined_secret",
                to: "123456",
              },
            ],

            //will skip obfuscation for the following words
            ignore: ["node_modules"],

            /* By using everyday words such as books or lorem ipsum in the pool,
            you can subtly obfuscate your code,
            concealing its true nature without making it apparent that obfuscation is occurring.*/
            pool: ["QueenOfHeart"],
      },
      debug: {
            // to display detailed stats about the words that have been obfuscated
            stats: true,
      },
    }),
  ],
};

For a more detailed explanation, refer to the config 8000 uration section of the codefend docs.

Step 2: Naming convention

In your code, add prefixes to the words that you want Codefend to encrypt.

Make sure to read the Philosophy behind Codefend obfuscation First to understand why Codefend can work with any code written in any language.

//node js example
//as a starting point:  prefix the words that should be encrypted with l_

class l_Calculator {
  l_sum(l_a, l_b) {
    const l_results = l_a + l_b;
    console.log("node_modules");
    console.log("predefined_secret");
    return l_results;
  }
}

//>>>>>>==== Will Become ======<<<<<<

class QueenOfHeart /* 'QueenOfHeart' defined in pool*/ {
  /* Ox1, Ox2... prefix transformation*/
  Ox1(Ox2, Ox3) {
    const Ox4 = Ox2 + Ox3;
    console.log("node_modules"); // has not been obfuscated
    console.log("123456"); // has transformed from "predefined_secret" to "123456"
    return Ox4;
  }
}
<!-- Html example, can work also with Angular,React,Vue,Svelte... in the same way -->

<html>
  <head>
    <style>
      .l_red {
        color: red;
      }
    </style>
  </head>
  <body>
    <div class="l_red">l_secret</div>
    <div class="l_red">Hello World</div>
  </body>
</html>

<!-- Will Become -->

<html>
  <head>
    <style>
      .Ox1 {
        color: red;
      }
    </style>
  </head>
  <body>
    <div class="Ox1">Ox0</div>
    <div class="Ox1">Hello World</div>
  </body>
</html>

Examples

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

License

MIT

About

Webpack plugin for code obfuscation using Codefend, providing protection for your code regardless of the programming language or framework.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published
0