2011-07-10 48 views
1

我正在寫一個PHP腳本,它響應來自iPad的GET請求,然後進行相應的數據庫查詢,返回一個JSON。例如:PHP和iPad之間的PHP腳本的密碼

http://mydomain.com/index.php?param1=xxx&key=afdS31PsR

這(鍵= XXXXXXXXX)是一種安全的方式來阻止人們訪問我的數據庫中的信息?我覺得它會被硬編碼到腳本中 - 所以它永遠不會改變。

更好的方法是散列鍵值,並與關鍵字數據庫中的散列進行比較。但即使如此,除非iPad通過HTTPS發送密鑰和請求,它似乎仍然不安全。任何想法如何做到這一點?也許有一種很好的方法來用PHP腳本建立公鑰/私鑰加密?我對密碼和身份驗證非常不熟悉,請耐心等待。

+1

如果您「非常缺乏經驗」,也許您不應在此階段部署安全關鍵型應用程序。單獨加密是一個非常微妙的主題,但在你的情況下,你還需要考慮誰可以訪問不受信任的客戶端機器上的哪些數據,所以你需要添加一堆理解客戶端軟件來做出一個好判斷呼叫...你的時間! –

+0

關於主題,您沒有給出我們需要知道的一半信息,以確定您的提案是否正確。從臀部拍攝我會說這可能不會增加任何安全性。 –

回答

4

對於真的科技精明的用戶,沒有發送密鑰(未加密),這是非常安全的方法。

但是,將它作爲GET請求發送通常是一個糟糕的主意,對該值進行硬編碼是一個更糟糕的主意。

您應該設置一個「每用戶」散列數據庫,並將散列鍵與數據庫中存儲的散列進行比較。如果你必須使用GET,那麼就這樣吧,但POST將是認證的方式。

如果您不使用HTTPS,那麼無論您使用何種方式監聽數據,您都受到任何人的擺佈,但至少POST會保持對於查看URL。

+0

我前些日子在想這件事,原則上你可以通過HTTP推送你的SSL實現 - 比如通過AJAX等的SSL。不知道以前是否做過。 –