2013-06-24 20 views
0

我已經在CakePHP上構建了一個web應用程序..我通過HttpPost在json對象中發送數據從android到webapp ..我現在正在寫的是我寫一個url在httpPost這樣從Android發送數據到webapp時的安全檢查Cakephp

 HttpPost post = new HttpPost("https://www.myweb.coom/test"); 

和CakePHP中我被檢查它是否是一個POST請求或不

if ($this->request->isPost()){} 

但問題是我怎麼能檢查該請求是否即將檢索數據從我的Android應用程序不是別人,因爲在這個時候,如果有人知道他的網址注入一些東西到我的數據庫或將做其他的事情......順便說一下,我使用https ..有些人說,你不需要做任何其他的想法,因爲你已經使用https ..但我不是感覺滿意..也告訴我應該加密數據,同時從Android發送和密鑰解密..?如果我應該然後請告訴我我該怎麼做

+0

你希望你的安全性如何「好」? https用於防止傳輸過程中的數據監聽,並驗證您正在與之通話的服務器的確是正確的服務器。但是沒有辦法知道是否有人發送僞造的POST v.s.一個來自你的應用。您可以添加各種各樣的東西以使其變得更加困難,但是使其100%不可能從您的應用程序中僞造消息是完全不可能的。 –

+0

OKK謝謝...但它有其他方法,使其更好..其實我註冊用戶通過一個Android應用程序,然後發送到一個Web應用程序..所以我不想任何人破解密碼..因爲pw從android來的未加密.i收到數據後,然後我加密並保存到數據庫 – hellosheikh

回答

0

本質上,您使用CakePHP創建的是API或Web服務。你想要做的就是保護API,只有你(或你選擇的人)可以執行請求。

爲此,您需要某種形式的身份驗證。一種做法是使用Oauth(http://oauth.net/)。更簡單的方法是將祕密「令牌」作爲每個請求的附加POST參數。

例如在純PHP:

$token = clean_string($_POST['API_token']); 
if($token!=MY_API_TOKEN){ 
    echo "Sorry, you must be authorized to use this API!"; 
} 

您提到您正在使用HTTPS-這是偉大的,但它只能防止對監聽,IP欺騙,和一個類似問題的排序。

+0

謝謝..我想這正是我想要的,因爲當我在瀏覽器中輸入url(我使用的url在httpPost)..它doesnt做anythink既不我可以顯示錯誤..所以我認爲你的解決方案正是我所需要的..謝謝你..明天我會測試你的解決方案,並通知你有關輸出 – hellosheikh

+0

我如何添加在Android ..的附加參數到httppost ..是這樣的HttpPost post = new HttpPost(「https://www.myweb.coom/test」,000111222); – hellosheikh

+0

請一步告訴我如何可以在cakephp和android之間使用oauth .. – hellosheikh