JavaScript難読化「既存メソッドのエイリアスを自作する。既存メソッドのエイリアスを自作する。専用ソフトを使用するこのホームページはJavascriptを多用しているため、javascriptがoffのままでは十分にご利用になれません。【OCN光/ADSL】新規・乗り換え申込み3.既存メソッドのエイリアスを自作する。自作関数はできるだけ短く、また類推不可能な名称に先程のページで、JavaScript内の日本語をASCII文字(英数字only)にするために、日本語をString.fromCharCode()メソッドを使って疑似暗号化したのですが、ファイルサイズが増えすぎたことが難点でした。そこで頻出するString.fromCharCode()メソッドのエイリアス(コピー)を作成して、コンパクトにしてみます。s(******);」とします。こんな簡単なコピー(代入方法)の仕方で、コピーできてしまうなんて。最初は私もびっくりでしたが、主要なブラウザですべて動きます。チェックしたブラウザは下記の通りです。○Mac(主要ブラウザ。Macユーザーの95%近い方は下記のブラウザのうち、いずれかを使用しています。○Mac(マイナーブラウザ。Macユーザーの数%は下記のブラウザを使用しています。alert;」としておきます。false;}a(msg19);}これにより、ソース2-2に比べてソース3-1は約7%のファイルサイズ縮小に成功しています。これでも、ソース1-2に比べれば、1.8倍以上のファイルサイズになっています。false;」がやたらと多いことに気づかされます。false;」することで、それ以上処理が進まないようにしています。これを関数化すれば、ファイルサイズは縮小します。false;」まで共通だとして関数化しますと、FirefoxなどMozilla系ブラウザで期待どおりに動かなくなるため注意が必要です。「document.myForm.email.focus();」のみ関数化します。以下のようになります。false;}a(msg19);}こうするだけで、ファイルサイズは3-1に比べて、3-2は約5%も少なくなりました。関数名はここでは、ai()としましたが、短ければ短いほど分かりにくいです。広告配信用JavaScriptでは、この手法が用いられています。この難読化したソースを実際に外部ファイル化して、下記の入力フォーム・サンプルで入力チェックができるようにしています。難読化しても問題なく動作することを確認してください。このフォームで使われているJavaScript(クリックするとダウンロードもしくはソースが表示されます。うまくいかない場合は、右クリック(コンテクストメニュー表示)で、リンク先をファイルに保存してください。)次のページでは、よく出てくるオブジェクト名(documentやwindowなど)を短い変数名のオブジェクトにコピーしてしまいます。これによりファイルサイズの縮小だけでなく、難読化が可能です。目次:改行やタブをなくす・コメントを省く日本語メッセージを英数字だけの文字列に変換する既存メソッドのエイリアスを自作する。HTMLソース難読化用Perlライブラリー(免責事項)このホームページの内容に起因する如何なるトラブルに対しても責任を持ちえません。自己責任でご利用ください。