ドキュメント
/
レシピ
/

HTML の難読化

HTML の難読化

Pro

有料プランでは、インライン JavaScript を含む HTML ファイルを難読化できます。難読化ツールはマークされた <script> タグを抽出してその内容を難読化し、周囲の HTML はそのまま保持します。基本的な難読化と VM 難読化のどちらでも動作します。

Parse HTML オプションを有効にすると、難読化ツールが <script> タグを自動的に抽出してその内容を難読化し、HTML の構造を保持します。

仕組み:難読化ツールは HTML を解析し、data-javascript-obfuscator 属性でマークされた空でないインライン <script> タグを探します。マークされたスクリプトはそれぞれ個別に難読化され、保護されたスクリプトを含む HTML 全体が出力されます。src または type="module" を持つスクリプトは、属性が付いていてもスキップされます。

重要:各 data-javascript-obfuscator スクリプトタグ内のコードは自己完結している必要があります。スクリプトは個別に難読化されるため、別のマーク済みスクリプト内でリネームされる名前に依存しないでください。マークされていないスクリプトは、保護されたスクリプトが明示的に保持するグローバル(var 宣言または globalThis への代入によるもの)を引き続き利用できます。

例

入力 HTML

HTML

難読化後、変換されるのは data-javascript-obfuscator 属性を持つスクリプトだけです。それ以外の内容はすべて変更されません。

制限事項

使用量の計算:使用量は、HTML ファイル全体のサイズではなく、難読化の対象として選択された JavaScript に対して課金されます(ジョブごとの最低課金額が適用されます)。ただし、アップロードできるファイルサイズの上限は HTML ファイル全体に適用されます。

出力の実行は無効:Parse HTML を有効にすると、HTML は JavaScript として実行できないため、「出力を実行」機能は無効になります。

  • 難読化されるのは、data-javascript-obfuscator 属性を持つ空でないインラインスクリプトだけです
  • src または type="module" を持つスクリプトは、属性が付いていても変更されません
  • 各スクリプトタグは個別に難読化されます。コードは自己完結している必要があり、他のマーク済みスクリプトタグでリネームされる名前を参照できません
  • イベントハンドラー属性(onclick、onload など)は難読化されません
  • JavaScript URL(javascript: プロトコル)は難読化されません
  • HTML コメント内のスクリプトは無視されます
  • Parse HTML が有効な場合、ソースマップはサポートされません