MonacaやCordovaで開発したアプリの最大のデメリットは、apkファイルを抽出してZIPで解凍すると、HTMLやCSS、JavaScriptなどのコード、ファイル構成が丸見えとなってしまう点である。
つまり、時間をかけて必死に開発を行っても、ZIPで解凍すれば簡単にコピーされてしまうし、コードに記載したクライアントキーやAPIキーなどの情報も知られてしまう。
リバースエンジニアリング対策として、ファイル暗号化プラグイン「cordova-plugin-crypt-file」をオススメする。
※MonacaのFreeプランは、プラグイン使用不可なので注意。
このプラグインは、HTMLやCSS、JavaScriptのファイルを暗号化するわけだが、そのまま使用するとさまざまな問題が発生する。
apkファイルのサイズが大きくなる。
Onsen UIなどのフレームワークも暗号化されるため、初期動作が遅くなる。
Onsen UI V2の場合、material系の動作が安定しない症状が見られる。
この問題を解決するには、暗号化対象外のファイルやフォルダを指定すればよい。
「cordova-plugin-crypt-file」の「plugin.xml」をエディタで開き、暗号化対象外のファイルやフォルダを追加してビルドする。
ピリオドを指定する場合、「\.」とする必要があるので注意が必要。
下記の例では、Onsen UIやAngular JSのファイルは暗号化する必要がないので、対象外としている。
また、ビルド時に追加されるファイルやフォルダも対象外としている。
この状態でリリースビルドした結果、約40%ファイルサイズを小さくすることができた。
変更前
[xml]
[/xml]
変更後
[xml]
[/xml]
暗号と認証 最強の指南書 (日経BPムック 日経ITエンジニアスクール) 新品価格 |