JavaScript難読化処理
 のためのヒント

▼▽ Instant Access Menu ▽▼

Click Here!

Bフレッツ対応、固定IPサービス「ZOOT for Bフレッツ」

5.不要なスペースを削除する

4-1のソースを使って、さらに難読化を試みてみます。不要な半角スペース(空白文字)を削除します。

ただ、半角スペースを単純に一括置換で全削除すると、「else」と「if」がくっついたり、「return」と「false」がくっついたり問題がありますので、細かく分けて作業する必要があります。

    1.「=」の前にある半角スペース
    2.「=」の後ろにある半角スペース
    3.「else」の前にある半角スペース
    4.「+」の前にある半角スペース
    5.「+」の後ろにある半角スペース
    6.「-」の前にある半角スペース
    7.「-」の後ろにある半角スペース
    8.「<」の前にある半角スペース
    9.「<」の後ろにある半角スペース
    10.「>」の前にある半角スペース
    11.「>」の後ろにある半角スペース
    12.「&」の前にある半角スペース
    13.「&」の後ろにある半角スペース
    14. 「||」の前にある半角スペース
    15. 「||」の後ろにある半角スペース
    16. 「if」の後ろにある半角スペース

    を削除してみることにします。

    「1.」なら「 =」を「=」に置換するように、「2.」なら「= 」を「=」に置換するように、EmEditorなどで行ってください。

    半角スペースを削ると、
    ソース5-1
    これにより、ファイルサイズは約3%減りましたが、何よりも半角スペースの量が減ったので読みにくくなりました。変数名の後ろの半角スペースがなくなるため、「moji>=97」のどこからどこまでが変数名か誤認するブラウザは絶対にないのかと心配になる方もおられると思いますが、下記のブラウザ全てで問題は生じません。JavaScriptは変数名に利用できるのは、半角英数字と「_」(アンダーバー)のみですから、「>」や「+」「}」が変数名の一部と誤認するブラウザはバグっていることになります。実際、存在しません。

    Windows
    IE7 RC1IE6IE5.5Firefox 1.5.0.7Netscape 7.1Opera 9.02

    Windows(古いブラウザ)
    IE 4.01IE 5.01IE 5.0Firefox 1.0.1Netscape 6.01Opera 7.23

    Mac(主要ブラウザ。Macユーザーの95%近い方は下記のブラウザのうち、いずれかを使用しています。)
    Safari 2.04
    (Tiger)
    Safari 1.32
    (Panther)
    IE 5.23
    (Tiger・Panther)
    Firefox 1.5.0.7
    (Tiger・Panther)
    IE 5.17
    (OS 9.2.2)
    IE 5.0
    (OS 9.2.2)
    Netscape 7.1
    (Tiger・Panther)

    Mac(マイナーブラウザ。Macユーザーの数%は下記のブラウザを使用しています。)
    Opera 9.02
    (Tiger・Panther)
    Firefox 2.0 RC1
    (Tiger・Panther)
    Firefox 1.07
    (Tiger・Panther)
    Camino 1.03
    (Tiger・Panther)
    Netscape 7.02
    (OS 9.2.2)
    iCab 3.03
    (Tiger・Panther)

    下記の検証用サンプルで実際に試してみてください。

    ▼ よくある入力フォームとJavaScriptによるチェック(検証用サンプル)
    名前:
    フリガナ:
    メールアドレス:
      

     このフォームで使われているJavaScript
    次のページでは、URLエンコードを利用して、現在のソースが跡形もないような形に変形させてみます。

      目次:

連絡先:info@broadband-xp.com
【PR】 HTMLソース難読化用Perlライブラリ

(免責事項)このホームページの内容に起因する如何なるトラブルに対しても責任を持ちえません。必ず自己責任でご利用ください。