13

私は phonegap でモバイル アプリを作成する初心者です。phonegap を使用してモバイル アプリを作成する場合、セキュリティの面で疑問があります。

  1. Jersey を使用して作成された REST サービスなど、Web サービスにアクセスするアプリを作成したいと考えています。さて、ハッカーは、サーバー (REST API が使用される場所) でクライアント (モバイルアプリ上) を認証するために使用されるセキュリティキー/認証メカニズムを簡単に確認できると考えて正しいでしょうか?

  2. 一般に、ハッカーはモバイル アプリ (phonegap を使用して作成された) によって送信されるすべてのデータに簡単にアクセスできますか?

  3. ハッカーは phonegap アプリを逆アセンブルして元のコードを取得できますか? 彼はネイティブ コード (ios の場合の Objective C など) を取得しませんか? それとも、それを元の phonegap コード (つまり、html+js) に逆コンパイルできますか? コードが逆コンパイルされないようにするにはどうすればよいですか? このシナリオは、他のほとんどの言語と同じですか。つまり、強力な PC を使用するハッカーは、ほぼすべてのプログラム/ソフトウェアにハッキングできますか? これを防ぐ方法はありますか?

4

2 に答える 2

21

よし、まずは深呼吸。あなたはおそらく私の答えのいくつかを気に入らないでしょうが、あなたは私たち全員と同じ問題を抱えて生きているでしょう.

  1. この場合の最善の方法は、KeyChainプラグインのようなものを使用して、ネイティブ側からセキュリティ キーを取得することです。

  2. クライアントとサーバー間で暗号化されていないデータを送信するあらゆる状況に適用されるため、PhoneGap を問題から外すことができます。Wireshark や Ethereal などの多くのツールを使用して、誰でも簡単に聞くことができます。サーバーと通信する必要がある場合は、暗号化された HTTPS または SSL 接続で行う必要があります。

  3. まず、PhoneGap が HTML/JS コードを Obj-C にコンパイルするという誤解をお持ちだと思います。そうではありません。ユーザーがアプリを解凍すると、HTML/JS を読み取ることができます。また、Obj-C コードを逆コンパイルすることもできます。これには、強力な PC や経験豊富なハッカーさえも必要としません。かなり誰でもできます。

あなたへの私のアドバイスは、それについて心配しないことです。真に優れたアプリの作成に時間を費やしてください。それを支払う人はそれを支払うでしょう。それを逆コンパイルする人々は、何があってもアプリを購入することはありません。ハッカーと戦うのに時間がかかればかかるほど、アプリをより優れたものにするための時間を奪ってしまいます。また、ほとんどのハッキング対策は、実際のユーザーの生活を困難にするだけであり、実際には非生産的です.

于 2012-05-07T15:03:50.210 に答える
0

TLDR - Web サイトをコーディングしていて、すべてのコード ( html および js ) が ブラウザーのように Crtl+Shift+i
を使用してユーザーに表示されることを考慮してください 最大限のセキュリティを確保するためのいくつかのポイント

  1. バックエンドを使用している場合は、アプリからのすべてを再確認してください
  2. Web サイトで可能なすべての攻撃 (XSS、悪意のある Web サイトへのリダイレクト、Web サイトのクローン作成などが可能)
  3. アプリに送信されたすべてのデータは最終的に一部の js 変数 / リソース ファイルで利用可能になります。ハッカーはすべての変数にアクセスできるため、最も安全なデータ転送メカニズムを使用している場合でも、アプリに送信されるすべてのデータにアクセスできます。
  4. Simon が彼の回答で正しく言ったように、phonegap や cordova はhtml/js をネイティブ コードに変換しません。Html / Jsはそのまま利用できますCordova
    も公式声明でこれについて明示的に言及しています

ソース コードが安全であると仮定しないでください
Cordova アプリケーションは、ネイティブ コンテナーにパッケージ化された HTML および JavaScript アセットから構築されるため、コードが安全であると考えるべきではありません。Cordova アプリケーションのリバース エンジニアリングが可能です。

5.主に、ウェブサイトでコードのクローン化/簡単な理解を防ぐために使用されているすべての手法がここでも適用できます (主に、js コードを読みにくい形式に変換する - コードの難読化が含まれます)
6.ネイティブ アプリと cordova/phonegap の比較アプリ ネイティブ アプリ 、コルドバはハッカーにとってより簡単であると言えます。これは、コードを保護するための十分な対策を講じていないコルドバ開発者間の認識が不足していることと、コードを直接難読化するためのすぐに利用できる (ワンクリック) メカニズムが Android プロガードと比較して不足しているためです。


サンプル Cordova アプリのハッキング (注: Phonegap も同様の方法で機能します)

ハッカーが Cordova アプリをハッキングするのがどれほど簡単かを示す例を示します (開発者はコードを難読化する努力をしていません)
基本的に、apk ファイルの解凍から始めます (apk は zip ファイル
のように解凍できます)。内部はこれに似てい ここに画像の説明を入力 ます。コルドバ アプリのソース コードは /assets/www/ フォルダー にあります。アプリにパックしたデータベースを含むすべてのコンテンツが表示されていることがわかります (最後の 2 行に db ファイルがあることを参照してください)。 それに加えて、他のリソースも直接表示されます (テキスト ファイル/js / html/ オーディオ / ビデオなど) すべてのビュー / コントローラーも表示され、編集可能です さらに内容を調べると、 PaymentController.js ファイルが見つかります それを直接開くことができますjs コードとその他のコメントを参照してくださいここに画像の説明を入力



ここに画像の説明を入力


ここに画像の説明を入力
ここで、ユーザーが支払いを実行した後、成功した場合は successCallback が呼び出され、それ以外の場合は cancelCallback が呼び出されることに注意してください。

ハッカーは、支払いが成功しなかった場合に successCallback が呼び出されるように、2 つの関数を単純に置き換えることができます。
他のチェックがない場合、ハッカーは支払いを回避することに成功しています。

于 2021-04-15T05:51:20.233 に答える