2015-05-18 62 views
8
獲取信息

所以這裏的情況,我有一個具有供用戶輸入信息到特定的標籤,然後創建基於給定信息的用戶的URL請求的一部分的iOS應用,併發送這到我的PHP後端。網址如下結構如下:安全發送PHP從iOS版

http://www.somewebsite.com/send.php?title=hello&name=john&contact=email 

現在,上述問題是,任何人誰有權訪問的URL,可以很容易地轟擊垃圾郵件數據庫,太多的意見等,感覺非常不安全。我應該如何使這個過程儘可能安全?

我目前的PHP知識水平能夠通過簡單地使用「完成工作」的方法來完成任務(不管它們有多安全),但是現在我開始走向了需要牢記安全,安全等。有用的建議/見解將不勝感激。謝謝!

+0

閱讀本文http://stackoverflow.com/questions/15273705/security-when-using-rest-api-in-an-iphone-application/15277589#15277589 –

+0

http://stackoverflow.com/questions/14452137/secure-api-for-ios-without-user-account –

+0

您的用戶在您的應用(或底層服務器)中是否有帳戶?這使得任務更容易。 – halfer

回答

3

確保安全的最佳方法是在OAuth2身份驗證層後面鎖定服務器端組件(即PHP部分)。我個人建議this OAuth2 Server爲此目的。

的一般工作流程將是這樣的:

1. Send an API key/username/password/etc to an API endpoint (i.e. a URL) 
2. Get a token, store it in memory for future use 
3. Send this token on subsequent requests 

將該溶液優於發送數據的散列(例如MD5),因爲這不驗證任何東西。它也解決了潛在的問題,而不是隱藏它(例如POST而不是GET對於保護你的通信沒有任何作用)。但是,OAuth2不提供機密性。中間的男人仍然可以看到/改變你的要求。

爲了更好地保護您的用戶,您應該在您的應用上使用HTTPS(TLSv1.2和PFS)。 獨家。甚至連端口80的HTTP服務器都沒有做任何比重定向到HTTPS服務器更多的事情。如果iOS支持,也發送HSTSHPKP標題。

如果您需要比HTTPS + OAuth2提供的更好的安全性,我建議learning application security全職,因爲如果您對該主題有廣泛的瞭解,更詳細和複雜的解決方案纔有意義。 (當然,根據您的threat model!)

例如,針對攻擊者的逆向工程應用程序來恢復硬編碼的API密鑰根本就不是它們,這會使您的工作流程變得複雜,並且可能需要驗證每個用戶。

+1

良好的建議,但瞭解安全是一個很大的話題。如果OP希望真正的安全聘請域專家。如果OP只對安全的外觀感興趣 - canry-on。 – zaph

+0

非常感謝您的信息。 PHP安全性現在開始在範圍內顯現出來。您上面概述的內容對於我的目的而言將是充足的。不久之後,我將需要看看幾個更先進的tpoics。謝謝。 – Vimzy

+0

@ zaph當然,但我相信安全教育更容易獲得對社會來說是件好事。 (如果有人想聘請域名專家,我當然可以通過[我的公司](https://paragonie.com)獲得!:P) –

-2

添加一個用戶名/密碼和密鑰對你的參數。製作你自己的組合(如果可能的話加密),然後總是先檢查它,這樣過程將會最小化。

如果錯誤的憑據停止進程。