通过iOS应用程序将数据从json(php webservice)修改为mysql
Posted
技术标签:
【中文标题】通过iOS应用程序将数据从json(php webservice)修改为mysql【英文标题】:Modify data From json (php webservice) to mysql by iOS app 【发布时间】:2012-05-01 05:38:08 【问题描述】:你好,我实际上开发了一个 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
如果是:它“安全”吗?因为如果有人找到这个网址...
【问题讨论】:
听起来您在问如何使用 PHP 来执行常规 REST 样式的 Web 服务。对吗? 看起来,实际上我成功地从 PHP 中读取了一个资源,但不知道如何修改.. 我只是需要一个提示,导致我现在迷路了 【参考方案1】:仅通过普通请求发送邮件更新绝对不安全。 首先,这些操作之后应该是密码验证,其次你应该在末尾添加一个 md5 哈希签名验证,并在服务器上验证该签名......
您还应该以单向散列格式(md5 或 SHA1)发送密码,并使用您的网络服务器数据库中的内容验证散列值...
编辑 回复您对此答案的问题
我会这样做: 我会这样做:
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 哈希值 + 密码短语并查看它们是否匹配。 如果它们匹配,则请求有效,您可以继续,如果它们不匹配,则有人试图劫持数据库,忽略它!
【讨论】:
是的,我明白了,所以最后它应该看起来像:mywebsite/service/baseClassUpdate.php?id=XX&mail=XXXX &password=MD5PASS ?或者我可以忘记通过 url 进行的修改? imma 正在寻找合适且安全的方式 哦,好的,我明白了,只有我在应用程序和服务器上知道秘密密码,如果我添加参数,它就像一个 checksun。好技巧,谢谢! 是的。确切地。使密码随机且至少 5-6 个字符。记住只传递 MD5 或 AES1 SHA 加密的用户密码,而不是纯文本!以上是关于通过iOS应用程序将数据从json(php webservice)修改为mysql的主要内容,如果未能解决你的问题,请参考以下文章
将信息从 ios 应用程序保存到 Web 服务器 (POST JSON)