2012-04-23 80 views
0

我正在製作應用程序,它會向php腳本發送值。然後php腳本將連接到Mysql數據庫並返回JSON數組。然後該應用程序會讀取它。如何確保安全?目前我沒有采取任何安全措施。android確保安全

+1

安全從什麼? – 2012-04-23 11:03:18

+0

安全,因爲在手機跌落時,它不會中斷? – 2012-04-23 11:04:03

+0

我想他在問他如何確保連接。 – 2012-04-23 11:05:38

回答

1

這取決於,這是一個如此巨大的話題,真正的答案會帶來一些價值不菲的材料。

你在問什麼「安全措施」?

如果您正在討論涉及Web服務器,那麼您首先需要保護您的Web服務器並構建一個足夠聰明的API,以防止大多數常見的攻擊方法。你需要確保其他人 - 只要輸入URL中的內容 - 不能做同樣的事情,你的目標用戶可以做。這意味着您需要先驗證用戶,然後才允許用戶訪問API。

這樣做的最常見方法是共享只有服務器和客戶端知道的「密鑰」。因此,您的用戶通過電話擁有特定的密鑰,而服務器擁有密鑰。現在用戶將數據發送到服務器,併發送驗證散列(如sha1(KEY + DATA))。然後服務器接收數據並確保散列值相同。切勿將密鑰本身與請求一起發送。

你需要測試的另一件事是重播攻擊。如果有人收聽通訊,那麼你必須限制損害。這通常是通過您發送請求的時間戳和服務器檢查時間戳是否在可接受的範圍內來完成的,因此如果稍後有人再次發送相同的請求,則由於時間戳不同而會失敗。服務器檢查這一點,因爲輸入數據驗證也考慮了時間戳。

然後您必須確保從服務器返回的數據是正確的。因此,服務器還會建立一個驗證散列,您的手機將檢查,確保有人在數據被髮回到您的手機時不會更改數據。

作爲附加層,您還可以使用AES/Rijndael 256位加密等重度加密算法加密發送(並從API接收)的數據。這將使用打開數據所需的密鑰來加密數據。如果電話和服務器知道密鑰而沒有其他人這樣做,那麼可以安全地發送數據。

然後,連接應該是HTTPS/SSL,它有助於保護通信不被監聽。但是,如果某人已經可以訪問您的手機,那麼這不會有幫助,因此建議您也使用其他提及的方法。

至於您的手機,只要您沒有安裝任何可能危及該安全性的應用程序,就會非常安全。另外,如果您認爲您可以減少網絡服務器的安全性,那麼由於只有手機與其通信才能保證安全,因此黑客可以輕鬆地在自己的手機上收聽通信,並找出Web服務API的基礎知識,然後打開所有的門。因此,請確保您的安全層從最大到最小:Web服務器是迄今爲止您系統中最大的實體。

正如你所看到的,這是一個需要很長時間才能學習的MASSIVE主題。但是不知道你究竟在問什麼,我無法進一步幫助你。