聞かれたのでメモ。
※以降の情報は個人的に調査した範囲内のものです。
今後改善されたり、隠ぺいする方法があるかもしれません。
Web ApplicationやAIRが最近流行ってますね。
メリットとしては、
・手軽に作成できる(HTMLやjavascriptの知識でアプリが作れる)
・クロスプラットフォーム(WinでもMacでもつかえる)
・WEB同様通信が簡単にできる(ブラウザと同程度の機能がある)
と、いう感じでしょうか
じゃあ逆にデメリットは?
・ソースを見ることが可能
これが非常に大きいと思います。
Web ApplicationやHTML+javascriptで作成されたAIRの場合、基本的に、ソースが丸見えです。
他にも、javascriptで作られたfirefoxのadd-onとかもそうですね。
インストールフォルダさえ見つけることができれば、基本的にはソースを見ることが可能です。
スクリプト言語を使う上のデメリットはここにあると思います。
でも、SWFで作成されたAIRなら大丈夫じゃないの?
と思われる方もいるかもしれませんが、これはこれで別の問題が・・・。
flash(SWF)、javaなどで作られたファイルは確かにコンパイル済みですが、仕様が公開されているため、逆コンパイラが作成されています。
SWFを入手→逆コンパイル→ソースコードを閲覧可能
というわけです。
AIRの場合、SWFファイルはインストールフォルダに置いてあります。
したがって、逆コンパイラの入手は難易度が高いかもしれませんが、ソースを見ることが可能といえます。(もちろん、FLASHも同様の問題を抱えています。)
そんなこと言ったら、どんな言語でも同じでは?
と、いわれるかもしれませんが。EXEファイルを逆アセンブラするのとは難易度が違います。
・手軽に作成できる(HTMLやjavascriptの知識でアプリが作れる)
というメリットがそのまま
・手軽にソースが解読される
というデメリットになってしまうわけです。
Web ApplicationやAIRは確かに便利ですが、ソースが見られてもいいように構築する必要がありますね。
具体的には、
・ソースに埋め込むべき情報を考える
(DBのパスワード、ゲームの答えなど)
・サーバで行うべき処理を切り分ける
(くじの抽選、ネットバンキング等重要データの保持、パスワードやシリアルキーの確認など)
といった感じでしょうか。
特に金銭が絡む情報や、サーバ側のセキュリティが絡む情報については注意するべきだと思います。









