我正在进入网络开发,我已经构建了一些基本的rails应用程序,但现在我想开始学习如何使用我的Rails应用程序安全地连接我的iOS应用程序。例如,如果我希望我的iOS应用程序通过在URL中传递参数来查询我的Rails webapp以获取DB中的某些数据...
http://mywebapp/mycontroller/search?q=keyword
...我可以使用哪些常见的Web开发方法来防止除iOS应用程序之外的任何(或任何人)成功执行该搜索查询?
我确信这种类型的伪造,我试图阻止它有一个正式的名称,但我对Web开发很新,我还在学习所有的行话。非常感谢你的智慧!
答案 0 :(得分:5)
使用Rails在protect_from_forgery
中使用的技巧,为您的iPhone应用程序生成一个唯一的密钥。然后确保您的应用程序将请求中的密钥传递给服务器。然后,您可以编写before_filter
以确保请求拥有密钥。如果是,则处理请求。如果没有,那么您将返回一个错误,其中包含自定义消息,说明无法访问的原因。
答案 1 :(得分:4)
您可以创建一个哈希并将其用作每次调用时传递的令牌,以识别您的应用程序(应用程序中的硬编码值)和会话(客户端的当前IP地址)。所以:hard_coded_value + ip_addressed - > MD5 / SHA1(取其中)=令牌。您的服务器还将拥有硬编码值的副本以及调用客户端的IP地址,执行相同的散列函数并比较结果。如果匹配,那就是你的应用。如果没有,那就不是。
答案 2 :(得分:1)