7

私はAndroid/iOS用のphonegap-appに取り組んでいます。

私が正しく理解していれば、誰かがphonegap-appパッケージを開いた場合、彼はhtml / js/cssを自分のphonegap-appにコピーすることができます。それは私がもっと難しくしたいことです。

私のアプリはアクティブなインターネット接続を必要とせずに動作します、そして私はそれをそのように保ちたいです。

私が考えることができる最善の解決策は、(40)HTMLファイルをネイティブJava / ObjectiveC変数に格納し、javascriptとカスタムPhonegapプラグインを使用してそれらを取得することです。このように、アプリの作成時にHTMLも暗号化されます。

これは実行可能な解決策ですか、それとも時間の無駄ですか?

4

3 に答える 3

12

これは、KerriShottsによるPhoneGapGoogleグループからの私のお気に入りの回答の1つです。彼女がその問題についての私の考えを要約しているので、私はそれが好きですが、私ができるよりも雄弁にそれをします:

あまり。はい、難読化できますが、デコードすることはできます。暗号化することはできますが、それはキーがコードのどこかにあることを意味します。つまり、暗号化を解除することもできます。デバイスとビットを入手したら、それらを使ってやりたいことが何でもできます。

注意:デバイスとOSは、ユーザーからアプリを保護するためのものではありません。アプリからユーザーを保護するためにあります。セキュリティとはまったく異なる側面。

これは主にネイティブアプリに当てはまることに注意してください。JavaまたはObjCプログラムを教えてください。そうすれば、それが何をするのかを簡単に理解することもできます。さらに、ほとんどのプラットフォームでは、すべてのグラフィックアセットは単なる通常のファイルであるため、簡単にコピーできます。

これが、海賊版/クローンアプリが非常に多い理由です。そして最終的に、私があなたのソフトウェアに少しでもある限り、あなたがそれについてできることは何もありません。あなたができることは、それをユーザーにとって「より難しく」することです-そしてその「硬さ」のレベルは、それをユーザーにとって「より難しく」するために必要な努力に比例します(指数関数的ではないにしても)。つまり、ユーザーの90%がシステムをクラックできないようにすると、アプリを強化するのが1レベル難しくなります。次に、99%がクラックできないようにするためには、プログラミングの難しさを大幅に向上させる必要があります。

もちろん、暗号化されたwww/フォルダーを読み取るネイティブコードでオンザフライの復号化ルーチンを作成できます。あなたがそれをしたいのなら、先に進んでください。(ハッカーはまだそれを回避することができます。/常に/方法があります。)私はそこまで進んでいきますか?いいえ。私の時間や労力の価値はありません。特に、私を壊滅させることに本当に興味を持っている人から私を守ってくれない場合はなおさらです。[別の問題:PGはこれを行う必要がありますか?いいえ。セキュリティの専門家だけで、ほとんどの開発者はそうではありません。]

セキュリティについて悲観的な見方をしますか?はい。ビットを配布すると、セキュリティが失われます。したがって、アプリの動作を非常に安全にする必要がある場合、それらの動作は、いくつかの非常に安全なファイアウォールの背後にある非常に安全なサーバー上のオフデバイスである必要があります-誰も推測できないようにするために、その間のセキュリティの程度を知っていますアプリがこのサーバーに対してどのように認証されているか。

ほとんどのアプリがwww/フォルダーが表示され、公開されていることを心配する価値がないと思うので、これをすべて言います。これまでのところ、99.99%のアプリではこれが当てはまります。ヘルスケア(および機密情報の記録)または政府または銀行(実際の銀行を使用)で作業している場合を除き、心配する必要はありません。もしそうなら、PGを使用する必要がありますか?さらに、モバイルデバイスを使用する必要がありますか?私の意見では、クライアントコードがほとんどなく、本質的にブラックボックスであるWebアプリである方がよいでしょう。

于 2012-08-27T14:08:19.900 に答える
5

何かが人々のアクセスを保護する価値があるほど価値がある場合(たとえば、認証の詳細)、それを彼らが持っているコンパイル済みコードに入れることは十分に安全ではありません。

それ以外の場合、HTML、Javascript、CSSには、非常に価値のあるものがありますか?それはコード自体ではありえません。なぜなら、彼らがそれをコピーできない場合、彼らはそれを見るだけで、「ああ、それはいい考えだ」と言って、コードを見ずにアイデアをコピーすることができるからです。優れたアイデアはコード行よりも価値があり、このように非表示にすることはできません。この場合、あなたはあなたが彼らのためにそれをより困難にしたよりもあなたのためにあなたのために人生をより困難にした。

于 2012-08-27T12:17:05.380 に答える