2011-01-25 11 views
2

私はエンタープライズアプリケーションで作業しています。クライアントは、アプリケーションから保存されたすべてのデータをリモートからデバイスから消去する必要があります。つまり、ユーザーが紛失したデバイスを報告した場合です。iOSでのアプリケーションデータのリモートワイプ

サービスサイドの実装を忘れてしまった場合、アプリケーションサンドボックスに格納されているデータのリモートワイプも可能ですか? sqlliteファイルや証明書などのアプリケーションリソースに存在するファイルを削除するのはどうでしょうか?

私はそれをネットでブラウズしていたし、this siteに沿って商品を宣伝していた。

できれば、この問題にどう対処する必要がありますか?

iOS 4.2以降のモバイルワイプを使用して、Appleによってリモートワイプ機能が追加されました。私は彼らが遠隔通知によってこれをやっているとは思わない。その場合、データがデバイスから削除されるという確実な保証はありません。

答えて

4

最も良い方法は、iPhonesディスクのデータを暗号化し、メモリ内で復号化することです(iOS 4には同様のメカニズムが組み込まれているため)。 ユーザーがデータを使用できるようにする前に、iPhoneにデータの暗号化が許可されているかどうかをサーバーに尋ねます(サーバーがiPhoneにデータを解読する鍵を与えるので、攻撃者はそれはコード)。サーバーが要求を拒否した場合、Appはすべての格納されたデータを消去し、完了します。当然の

このアプリは、インターネット接続(またはサーバーと通信することができますローカルイントラネットに少なくとも接続)を要求するように許可されている場合にのみ機能します

+0

あなたのソリューションは最も論理的なアプローチのようです。しかし、私の質問(エンタープライズアプリケーションの良い点について)で私が共有したリンクには、「電話が紛失したり盗まれた場合に、良いアプリケーションと暗号化されたデータを削除したり、必要な状況でデバイス全体を拭き取ってください。私はアプリケーション全体を削除することができれば、それを行う方法がなければならないと思っています。 – Vin

+0

@Vin:彼らがどうやってやったのか分かりませんが、私は彼らがある種の脱獄を使うだろうと思います。 OS X上で実行中のバイナリを削除することは可能ですが(したがってiOSでも同じです)、バイナリ自体はシールドされたフォルダにあり、サンドボックスはあなたを止めます。実行中のデーモンでリモートでアプリを強制終了させることは可能でしょう。あなたの最善の策はモバイル基板(脱獄)でしょう。しかし、まあ、脱獄は、あなたが望む解決策ではないかもしれませんが、 "ちょうど"エンタープライズアプリとして可能です。 – JustSid

+0

私は彼らが脱獄を使用しているとは思わない。このアプリは、アプリストアで無料で利用できます。エンタープライズ向けの検索に適しています。 – Vin

0

私はあなたがドキュメントフォルダにワイプしたいすべてのデータをstrore、その後、

0

を必要に応じて、我々はいくつかの通知を得る上のsqliteやドキュメントフォルダに格納されているアイテムを削除することができ、それを拭くべきだと思います。しかし、これはアプリケーションを開いて通知を受け取ったときにのみ可能です。 私は1つの例を挙げることができます: アプリケーションがを開くと、ユーザはあなたのローカルサーバから何らかのメッセージを得るでしょう(ログインしているか、最初の画面を読み込んでいるかもしれません)。 このメッセージが表示されたら、sqliteまたはドキュメントフォルダからデータを削除してください。

ただし、上記の場合、アプリケーションを開く必要があります。アプリケーションが起動しなくてもデータを削除する必要がある場合は、プッシュ通知を使用する必要があります。

+1

デバイスが盗まれた場合、新しいユーザーが通知を受け取ってもアプリを起動しない可能性があります。 – Vin

+0

はいthats正しい。しかし、削除はデバイスの盗難とデータの削除をアプリがどのようにして開始するか、あるいはアプリにどのように通知するのでしょうか?あなたのアプリのログイン画面を紹介することができます。この場合、アプリケーションは保護されます。 – Snehal

0

あなたが言及しているウェブ側は、メールとカレンダーのデータを消去することです。

プッシュを有効にしている場合(details)、携帯電話を完全にワイプできるMobileMeサービスがあります。

また、リモートワイプコマンドが発行される前に、誰かが電話を見つけてプッシュを無効にするほど賢明で、設定でFind My iPhoneが壊れてしまった場合は、データから離れてしまう可能性があります。それは、小柄な電話の泥棒を怖がらせるだけで十分ですが、あなたのデータの後ろにいる人は避けてください。

アプリは独自のデータを削除できます。しかし、アクティブ(フォアグラウンドまたはバックグラウンド)の間だけ、そうすることができます。再び、許可されていない誰かが削除する前に削除する必要があるものを削除するようにアプリに指示するタイミングの問題になります。

-1

ドキュメントフォルダに保管してすべてのもの。その後、私はその要件は、リモート通知を設定することで満足すると思うし、アプリの芝に敏感に通知ハンドラを持つことができる唯一の方法は、

NSFileManager *fileMgr = [[[NSFileManager alloc] init] autorelease]; 
NSError *error = nil; 
NSArray *directoryContents = [fileMgr contentsOfDirectoryAtPath:documentsDir error:&error]; 
if (error == nil) { 
    for (NSString *path in directoryContents) { 

     if([path isEqualToString:@"cache.db"]) { 
      //dont delete db 

     } 
     else { 
      NSString *myFilePath = [documentsDir stringByAppendingPathComponent:path]; 

      //NSLog(myFilePath); 

      BOOL removeSuccess = [fileMgr removeItemAtPath:myFilePath error:&error]; 
      if (!removeSuccess) { 
       //handle errors? 
       NSLog(@"Not deleted: %@ %@", path, [error userInfo]); 

      } 

     } 


    } 

} else { 
    // Error handling 
    //... 
} 

Deleting all the files in the iPhone sandbox (documents folder)?

+0

あなたの質問を見ました。ここでの問題は、sqlite dbのようないくつかのファイルがアプリケーションのresourcesフォルダにも存在することです(ドキュメントフォルダにコピーされる前)。これらのファイルはどうですか? – Vin

+0

私は同じ問題がありました。私の答えを編集します –

2

すべてを削除するには、このスレッド上でコードを使用します発射時のデータ。これは最善の方法ではありません(私は、このスレッドの他の提案のほうが少し好きです)。しかし、要件の真っ向から言えば、Apple Remote Notificationsは唯一の方法のように思えます。

+0

答えDanさんありがとうございます。しかし、私がJustSidの答えにコメントしたように、サードパーティのアプリはどのようにアプリストアで利用できるのですか? – Vin

+1

これはできません。文字通り、あなたが得ることができる必要があるものは、非jailbrokenデバイスであなたに利用できません。私は彼らが実際に彼らがユーザーに脱獄を要求せずに主張していると思われるものを意味することを推測することはできません。データの削除は一つのことです。アプリ内からアプリ全体を削除しますか?できません。 –

関連する問題