これは、KerriShottsによるPhoneGapGoogleグループからの私のお気に入りの回答の1つです。彼女がその問題についての私の考えを要約しているので、私はそれが好きですが、私ができるよりも雄弁にそれをします:
あまり。はい、難読化できますが、デコードすることはできます。暗号化することはできますが、それはキーがコードのどこかにあることを意味します。つまり、暗号化を解除することもできます。デバイスとビットを入手したら、それらを使ってやりたいことが何でもできます。
注意:デバイスとOSは、ユーザーからアプリを保護するためのものではありません。アプリからユーザーを保護するためにあります。セキュリティとはまったく異なる側面。
これは主にネイティブアプリに当てはまることに注意してください。JavaまたはObjCプログラムを教えてください。そうすれば、それが何をするのかを簡単に理解することもできます。さらに、ほとんどのプラットフォームでは、すべてのグラフィックアセットは単なる通常のファイルであるため、簡単にコピーできます。
これが、海賊版/クローンアプリが非常に多い理由です。そして最終的に、私があなたのソフトウェアに少しでもある限り、あなたがそれについてできることは何もありません。あなたができることは、それをユーザーにとって「より難しく」することです-そしてその「硬さ」のレベルは、それをユーザーにとって「より難しく」するために必要な努力に比例します(指数関数的ではないにしても)。つまり、ユーザーの90%がシステムをクラックできないようにすると、アプリを強化するのが1レベル難しくなります。次に、99%がクラックできないようにするためには、プログラミングの難しさを大幅に向上させる必要があります。
もちろん、暗号化されたwww/フォルダーを読み取るネイティブコードでオンザフライの復号化ルーチンを作成できます。あなたがそれをしたいのなら、先に進んでください。(ハッカーはまだそれを回避することができます。/常に/方法があります。)私はそこまで進んでいきますか?いいえ。私の時間や労力の価値はありません。特に、私を壊滅させることに本当に興味を持っている人から私を守ってくれない場合はなおさらです。[別の問題:PGはこれを行う必要がありますか?いいえ。セキュリティの専門家だけで、ほとんどの開発者はそうではありません。]
セキュリティについて悲観的な見方をしますか?はい。ビットを配布すると、セキュリティが失われます。したがって、アプリの動作を非常に安全にする必要がある場合、それらの動作は、いくつかの非常に安全なファイアウォールの背後にある非常に安全なサーバー上のオフデバイスである必要があります-誰も推測できないようにするために、その間のセキュリティの程度を知っていますアプリがこのサーバーに対してどのように認証されているか。
ほとんどのアプリがwww/フォルダーが表示され、公開されていることを心配する価値がないと思うので、これをすべて言います。これまでのところ、99.99%のアプリではこれが当てはまります。ヘルスケア(および機密情報の記録)または政府または銀行(実際の銀行を使用)で作業している場合を除き、心配する必要はありません。もしそうなら、PGを使用する必要がありますか?さらに、モバイルデバイスを使用する必要がありますか?私の意見では、クライアントコードがほとんどなく、本質的にブラックボックスであるWebアプリである方がよいでしょう。