2

你好,我实际上开发了一个 Ios 应用程序这个应用程序使用 PHP Web 服务从 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 数据库?

  • 创建另一个 WebService 并通过 url 发送数据?

    http://mywebsite/service/baseClassUpdate.php?id=XX&mail=XXXX
    
  • 如果是:它是“安全的”吗?因为如果有人找到这个网址......
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 回答