JavaScriptの難読化(Obfuscation)とは、コードの可読性を意図的に下げることで、第三者による理解や改変を難しくする手法です。セキュリティ目的や知的財産保護のために使用されます。
以下、手順です。
1. Node.js & npm のインストール
・Node.js がインストールされていない場合は以下からインストールします。
https://nodejs.org/
・「コマンドプロンプト」から Node.js & npm がインストールされていることを確認
|
1 2 3 4 5 |
C:\Users\nnishizawa>node -v v20.13.1 C:\Users\nnishizawa>npm -v 10.5.2 |
2. javascript-obfuscator をインストール
・エクスプローラーから「コマンドプロンプト」を開く (.csproj のあるフォルダにいることを確認)
・以下を順に入力:
|
1 2 |
npm init -y npm install javascript-obfuscator --save-dev |
3. package.json にスクリプトを追加
package.json に以下を追加します。obfuscatorは難読化のみなので、事前に複数ファイルの結合を行っています。
|
1 2 3 4 |
"scripts": { "concat": "cmd /c \"wwwroot\\scripts\\src\\*.js > wwwroot\\scripts\\build\\app.debug.js\"", "obfuscate": "javascript-obfuscator wwwroot/scripts/build/app.debug.js --output wwwroot/js/dist/app.min.js --compact false" } |
4. Visual Studio のビルド後イベントに追加
.csproj に以下を追加します。ビルド後イベントとして、package.jsonのコマンドが実行されます
|
1 2 3 4 |
<Target Name="RunObfuscator" AfterTargets="Build"> <Exec Command="npm run concat" WorkingDirectory="$(ProjectDir)" /> <Exec Command="npm run obfuscate" WorkingDirectory="$(ProjectDir)" /> </Target> |
以下、難読後のソースです。変数や関数名が難読化されています。
