勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ

HTMLとJavaScriptのソースコードの暗号化(難読化)

   2024/02/25  JavaScript HTML

サーバーサイドはソースを見られないけどクライアントサイドはソースを見られるので、簡易にでも暗号化できないのか? とふと思い調べたのでメモ。「クライアントサイドで実行可能ということは、クライアントは解釈可能な言語。よって完全に隠すのは無理」がまず結論。その上で簡易的な暗号化方法のメモ。

 

参考サイト

http://q.hatena.ne.jp/1177061214

まあ簡易でもいいので、と思って探したら楽なのがあった。

ソースの暗号化

http://jsajax.com/Articles/SourceCodeEncrypter/859

尚、出力されたソースを見たところunescapeという見たことの無い関数が。

参考サイト

https://developer.mozilla.org/ja/docs/JavaScript/Guide/Predefined_Functions/escape_and_unescape_Functions

16進エンコーディングの値を文字列にして返す関数とのこと。

どの道、暗号化しても解読は可能なのでどうしても内部の人間だけが見られるほうが良いのであれば、以下のようにPHPでコメント入れるとかのほうが良さそう。

<script>
  <?php $com = 'ここからコメント';?>
 /* javascriptの処理 */
  <?php $com = 'ここまでコメント';?>
</script>

 

2013/12/21追記

↓JSの難読化はここいいよ、と上司から教わったのでメモ。

http://dean.edwards.name/packer/

 - JavaScript HTML

  関連記事

ajaxを使わずに非同期っぽくsubmitする
ajaxを使わずに非同期っぽくsubmitする

ajaxを使わずに見た目はページ遷移せず、 画像を含めたformをsubmitし ...

HTML5のGeolocation APIで位置情報を取得してGoogleMapAPIで使用する方法
HTML5のGeolocation APIで位置情報を取得してGoogleMapAPIで使用する方法

GPSみたいな位置情報を取得しGoogleMapAPIでその場所を反映させたかっ ...

スマホでページ内リンクからGoogleMapアプリを開く
スマホでページ内リンクからGoogleMapアプリを開く

スマホでWebページにあるリンクをクリックした際にGoogleMapアプリを表示 ...

Googleカレンダーに追加する(予定を登録する)リンクを設置する方法
Googleカレンダーに追加する(予定を登録する)リンクを設置する方法

あるサイトに「Googleカレンダーに追加する(予定を登録する)ボタンを設置して ...

HTMLでContent Security Policyの設定方法
HTMLでContent Security Policyの設定方法

Content Security Policyの設定をする事があった。Conte ...