【问题标题】:should we create session on php server for uses accessing my php api from mobile我们是否应该在 php 服务器上创建会话以用于从移动设备访问我的 php api
【发布时间】:2014-02-10 17:45:45
【问题描述】:

我已经创建了从 ios 应用程序访问的 api。还有登录和注册页面。 当用户访问 api 时,用户的 ios 代码用户 ID 作为帖子发送。 如果用户 ID 在数据库中匹配,则允许用户继续进行 api 调用,否则会向用户显示“无效请求”消息。

我应该继续使用这种方法还是当用户登录然后在 php 服务器上我需要将用户信息存储在 php 会话中而不是每次发送用户 ID 到 php 我应该从 php 会话中选择使用 id。

任何人都可以帮助我找到更好的方法吗? 我发现在 php 服务器上维护会话没有用。 session 是在 ios 端提到的。

【问题讨论】:

    标签: php ios


    【解决方案1】:

    您描述的是一种非常不安全的身份验证方式:

    • 每个嗅探到对话的人之后都可以使用该 API。

    • 一个人甚至可以很容易地进行暴力攻击,您只需尝试所有可能的名称,对于中等长度的名称可能只需要几分钟。

    因此,您应该实施某种挑战来保护身份验证。最简单的(虽然最不安全)是一个额外的密码。而且您必须加密客户端和服务器之间的对话。

    你当然想在服务器端使用会话。一个会话只允许对用户进行一次身份验证。这为后续请求节省了很多麻烦。

    我能想到的唯一替代但干净的方法是使用客户端 ssl 证书,该证书针对服务器对客户端进行身份验证。这是非常安全的,但您需要为每个客户端创建和安装证书。

    【讨论】:

      【解决方案2】:

      您基本上是在寻找一种身份验证方法来保护您的 Web 服务 API。

      尝试实施 OAuth,因为它是向其他客户端提供 API 访问的最安全方式之一。

      它基本上是这样工作的。

      对于向您注册的每个需要 API 访问权限的用户,您会为他们生成一个身份验证令牌。然后他们需要向您注册一个客户端应用程序,您为其生成密钥和令牌。当客户端应用程序发送请求时,第一个请求必须在请求中包含密钥和身份验证令牌,您的应用程序必须验证并发送确认令牌。然后,您可以安全地发出后续请求。

      以上只是oauth的要点。要获得更好和更详细的实施,请点击以下链接。

      http://www.slideshare.net/mohangk/securing-your-web-api-with-oauth

      http://techblog.hybris.com/2012/06/11/oauth2-resource-owner-password-flow/

      How to get started with OAuth to secure a Web API application?

      【讨论】:

        猜你喜欢
        • 2020-09-16
        • 1970-01-01
        • 2013-11-23
        • 1970-01-01
        • 1970-01-01
        • 2017-10-28
        • 1970-01-01
        • 2011-09-19
        • 1970-01-01
        相关资源
        最近更新 更多