我在我的iOS應用程序像這樣的代碼:如何防止未經授權的HTTP請求?
URL *url = [NSURL URLWithString:@"http://urltomyapp.com/createaccount"];
ASIFormDataRequest *createAccountRequest = [ASIFormDataRequest requestWithURL:url];
[createAccountRequest setPostValue:email forKey:@"email"];
[createAccountRequest setPostValue:password forKey:@"password"];
[createAccountRequest startAsynchronous];
在我的服務器上執行,我簡單地採取通過self.request.get(「電子郵件」)此信息,並創建一個帳戶,沒有做任何檢查或任何東西。然而,似乎任何人都可以輕鬆地運行上面的代碼(我的意思是你需要做的就是複製上面的代碼並把它放到你自己的應用程序中,對嗎?),所有他們需要知道的是服務器地址,他們可以將他們想要的任何數據附加到請求中,服務器將繼續爲它們創建一個帳戶。
我該如何授權請求才能知道他們來自我的應用程序和我的應用程序?這是一個普遍的問題嗎?其他產品如何防止這種情況發生?
我不想過度安全或偏執。我認爲我不理解的是(作爲一個例子):我在我的服務器「createaccount」中有一個url,它需要發送兩個參數與請求:電子郵件和密碼。這個腳本不需要任何身份驗證(我的意思是我可以在這裏進行身份驗證),所以似乎任何一個(無論如何都沒有理由)可以通過10,000次迭代發送一個for循環,向這個url發送請求並創建10,000用戶帳戶。也許這不會經常發生,但是什麼阻止了它的發生?我不應該爲此擔心嗎? – Snowman
你應該擔心嗎?只有它很重要。在這種情況下,您將不得不採用某種類型的服務器端措施來檢測/防止您不需要的行爲。如果您的服務器端口向互聯網開放,任何人都可以向您發送他們想要的任何內容。如果標準服務器不夠用,則必須採用服務器端措施。最後,如果有人決心濫用你的服務器,那麼防禦時間和金錢都會花費你很多。我想大多數人都選擇把門鎖上,然後等待看看他們是否需要做更多的事情。 –