2

こんにちは私は実際にIosアプリケーションを開発していますこのアプリケーションはPHPWebサービスを使用してmysqlからデータを取得します(JSONに変換します)。実際、それはかなりうまく機能します。

しかし、問題は次のとおりです。情報を更新、削除したい場合。

例:

@interface Base : NSManagedObject

@property (nonatomic, retain) NSNumber * id;
@property (nonatomic, retain) NSNumber * latitude;
@property (nonatomic, retain) NSNumber * longitude;
@property (nonatomic, retain) NSString * mail;      
...

このクラスはFillです(httpリクエストの後、JSONを取得します)...

問題 :

self.mail = @"newmail@mail.com";

このデータをMySQLデータベースに更新するにはどうすればよいですか?

  • 別のWebサービスを作成し、URLでデータを送信しますか?

    http://mywebsite/service/baseClassUpdate.php?id=XX&mail=XXXX
    
  • はいの場合:それは「安全」ですか?誰かがこのURLを見つけた場合の原因...
4

1 に答える 1

2

単純なリクエストで更新メールを送信することは間違いなく安全ではありません。まず最初にこれらのアクションの後にパスワード検証を行う必要があり、次にmd5ハッシュ署名検証を最後に追加してサーバー上でその署名を検証する必要があります...

また、一方向のハッシュ形式(md5またはSHA1)でパスワードを送信し、Webサーバーデータベースにあるものでハッシュ値を確認する必要があります...

編集 この回答への質問に返信するには

これが私がすることです:私はこれをします:

website/script.php?id=XX&mail=XXXX&password=MD5Pass&signature=MD5signature=MD5Signature

md5signatureは、すべてのパラメーター(id)(mail)(password)のmd5ハッシュ値と、mySecr3tPassのような秘密のパスワードである必要があります。 したがって、id = 12、mail = mymail@mail.com、pass = AERF124Fの場合、署名は12mymail@mail.comAERF124FmySecr3tPassのMD5ハッシュ。これは0b9492395c9c1a73a6622cab5a6a4de5になります。

したがって、リクエストは次のようになります。website/script.php?id=12&mail=mymail@mail.com&password=AERF124F&signature=0b9492395c9c1a73a6622cab5a6a4de5

したがって、phpスクリプトでは、すべてのパラメーターのmd5ハッシュとシークレットパスフレーズを計算し、それらが一致するかどうかを確認する必要があります。 それらが一致する場合、要求は有効です。続行できます。一致しない場合、誰かがデータベースを乗っ取ろうとしている場合は、無視してください。

于 2012-04-19T16:47:38.200 に答える