2014-10-30 46 views
0

我想開發一種方式讓我的客戶發送一個curl請求來從我的服務器獲取數據。我需要這個來保證安全。我希望我的客戶給我發送一些東西,我認證他,然後等他給我發送數據請求。類似於安全捲曲調用 - 命令行調用

curl -O 1.2.3.4/curlRequest.php?username=Joe&password=123456790 

curlRequest.php會驗證一些憑證。明確地發送u/p得到是一個可怕的想法。任何想法如何我可以去做這件事。我不是要求任何人爲我寫代碼,我更多地詢問我可以用什麼程序來實現我的目標。

我首先想到的是發送請求1,將要求某些字符串:

125tewgkljgetEDtstdkj 
:利用這一點,這要求從已知服務器附帶的事實

curl 1.2.3.4/authCurl.php?userName=Joe 

,我可以用串做出響應

那麼今後所有申請必須包含在接下來的X分鐘該字符串:

curl -O 1.2.3.4/curlRequest.php?hash=125tewgkljgetEDtstdkj 

這是一個可怕的想法?您可以推薦的其他選項?

+1

至少使用post,所以他們的用戶/密碼不會塞入您的access_log 。解除用戶與請求的關聯 - 發出一個API密鑰(例如,隨機的字母數字字符串,除了經由您的數據庫,它們絕不會再與特定的用戶關聯)。 – 2014-10-30 17:07:10

+0

您是否在說我應該讓客戶X擁有一個adsakglsdjglkj的密鑰,並且客戶y應該擁有一個lk4yhkljfhdgkjh的密鑰並且只是發送每個呼叫? – bart2puck 2014-10-30 17:08:47

+0

。該字符串可以像'sha1($ username。$ password。'randomsaltstringhere'')這樣簡單的東西,但是如果使用asdfasdfasdfasdfasd-type字符串,就沒有辦法讓「Joe」退出。 – 2014-10-30 17:10:20

回答

0

最好的辦法是捲曲,在你的情況下最安全。服務器上的腳本處理$ _POST數組中的數據,並創建一個隨機的方式,將密鑰返回給客戶端,併爲每個連接檢查其密鑰......如果密鑰不在新登錄中並更新數據庫和客戶端中的密鑰

欲瞭解更多信息,我可以幫助你完成這個過程。我很快就完成了一個以應用程序的形式在客戶端上運行的項目,但連接到遠程服務器上的MySQL數據庫...