2012-04-19 78 views
2

您好,我实际开发了一个Ios应用程序 此应用程序使用PHP web服务从mysql获取数据(以JSON格式转换)。 其实它工作得很好。修改数据从iOS应用程序从json(php webservice)到mysql

但问题是: 如果我想更新,删除信息。

如:

@interface Base : NSManagedObject 

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

这个类是填充(HTTP请求后,得到JSON)......

问题:

self.mail = @"[email protected]"; 

我怎样才能在这个数据更新到我的MySQL数据库?

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

    http://mywebsite/service/baseClassUpdate.php?id=XX&mail=XXXX 
    
  • 如果是:是“安全”吗?因为如果有人发现这个网址...
+1

听起来像你问如何使用PHP来执行常规REST风格的Web服务。是对的吗? – 2012-04-19 16:35:28

+0

看起来像,实际上我成功地从PHP读取资源,但不知道如何修改..我只需要一个提示,导致imma目前丢失 – 2012-04-19 16:40:18

回答

2

只是通过简单的请求发送邮件更新绝对不安全。所有这些行动的 首先应遵循的密码验证和第二你应该添加一个MD5哈希签名验证的结尾,并确认在服务器上签名......

你也应该在单向发送密码散列格式(MD5或SHA-1),并验证与你在你的Web服务器数据库什么的散列值...

编辑 要答复你的问题这个答案

这里是我会做什么: 我会这样做:

​​

的md5signature应该是所有参数(ID)(邮件)(密码)和秘密口令的MD5哈希值,像mySecr3tPass 所以,如果ID = 12,邮件= mymail @邮件。 COM,并通过= AERF124F,签名会[email protected]的MD5哈希值,这将是0b9492395c9c1a73a6622cab5a6a4de5

因此请求将是:website/script.php?id=12&[email protected]&password=AERF124F&signature=0b9492395c9c1a73a6622cab5a6a4de5

所以在PHP脚本,要计算前人的精力MD5散列所有参数+秘密p保证,看看是否匹配。 如果它们匹配,请求是有效的,你可以继续,如果它们不匹配某人正在试图劫持数据库,那就忽略它!

+0

是啊我看到了, 所以最后它应该看起来像: http: //mywebsite/service/baseClassUpdate.php?id = XX&mail = XXXX&password = MD5PASS ?或者我可以忘记通过网址修改? imma寻找适当和安全的方式 – 2012-04-19 16:51:38

+0

哦,好吧,我明白了,只有我在应用程序和服务器知道密码,如果我添加params,它就像一个checksun。 好的招数,thx! – 2012-04-19 17:00:55

+0

是的。究竟。随机输入密码并至少输入5至6个字符。请记住只传递用户密码MD5或AES1 SHA加密,而不是纯文本! – Lefteris 2012-04-19 17:01:52

相关问题