gpt4 book ai didi

android - 如何为我的应用程序创建安全的 Rails REST Api?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:06:59 24 4
gpt4 key购买 nike

所以我正在为需要 Web 后端的 Android 开发一个应用程序。该网站正在 Ruby on Rails 中构建。它有面向客户端的一面(漂亮的 HTML 页面),但我也希望它能够通过 JSON 向我的 Android 应用程序提供信息。但是,我不希望全世界都能获得此 JSON,因为它包含一些可能危险的信息。如何锁定 JSON 格式的页面并仍然可以从 Android 应用访问它们?

郑重声明,我正在使用 Rails 3.1 has_secure_password 进行现场用户身份验证,我希望有一些对 HTML 请求开放但对 JSON 锁定的路由(例如, /users url 应该可以作为 HTML 访问,但作为 JSON,它应该只能通过某种安全方法从我的应用程序访问)。

有什么方法可以做到这一点,或者 API 是否必须是一个单独的应用程序(这对数据库设置等来说非常不方便)?

澄清:基本上我想做的是从我的 Rails 应用程序创建一个基于安全 token 的 JSON API,我不想使用 Devise 或其他会迫使我改变我已经存储用户/密码信息的方式的东西。

最佳答案

根据您使用的 rails 版本,部分工作已经通过 respond_to 方法完成,它允许您为同一 url 同时提供 JSON 和 HTML。现在,要锁定 JSON 访问,您可以定义一个检查应用程序访问的方法,并在提供 JSON 响应时调用它

def with_access_check()
if allowed # Or any verification you want.
yield
else
# Raise a 403 maybe?
end
end

# Then in every method that needs a check:
respond_to :json { with_access_check { render :json => @stuff } }

最后,除非您在 json 和 html View 上提供非常不同的数据(如果您对两者使用相同的 url,这很奇怪),请考虑没有什么可以阻止攻击者/恶意用户提取完全相同的数据来自您的 HTML。

关于android - 如何为我的应用程序创建安全的 Rails REST Api?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11279368/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com