2012-04-19 80 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

相關問題