簡體   English   中英

如何防止除iPhone應用程序之外的其他任何東西與Rails Web應用程序通信?

[英]How can I prevent anything other than my iPhone app from communicating with my Rails webapp?

我正在研究Web開發,並且已經構建了一些基本的Rails應用程序,但是現在我想開始學習如何將iOS應用程序與Rails應用程序安全地連接起來。 例如,如果我想讓我的iOS應用通過在url中傳遞參數來查詢我的Rails Web應用以獲取數據庫中的某些數據...

http://mywebapp/mycontroller/search?q=keyword

...我可以使用哪些常見的Web開發方法來阻止除我的iOS應用以外的任何(或其他任何人)成功執行該搜索查詢?

我確定我要防止的這種偽造具有正式名稱,但是我對Web開發非常陌生,我仍然在學習所有術語。 非常感謝您的智慧!

通過為您的iPhone應用程序生成唯一密鑰,使用Rails在protect_from_forgery使用的技巧。 然后,確保您的應用將請求中的密鑰傳遞給服務器。 然后,您可以編寫一個before_filter來確保請求擁有密鑰。 如果是這樣,則您將處理請求。 如果不是,那么您將返回一條錯誤消息,並顯示一條自定義消息,說明他們為何無法訪問。

您可以創建一個哈希並將其用作令牌,該令牌將隨每次調用一起傳遞,以標識您的應用程序(應用程序中的硬編碼值)和會話(客戶端的當前IP地址。)因此:hard_coded_value + ip_addressed-> MD5 / SHA1(以任何一個為准)=令牌。 您的服務器還將具有硬編碼值的副本以及主叫客戶端的IP地址,執行相同的哈希函數並比較結果。 如果它們匹配,那就是您的應用。 如果不是,則不是。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM