保护应用程序的休息API

可能重复:
保护REST API / Web服务的最佳实践

我正在制作一个桌面应用程序,在这个应用程序中,我将能够创建/读取/更新/删除数据库中的数据。 对于这个动作,我做了一个php REST api,这样我就可以简单地获得完整的/api/users列表,并选择用户1与/api/users/1 。 如果你知道更好的方式你可以告诉我的课程,我认为这是一个'好'的方法来做到这一点。

现在的问题是我想先登录到应用程序,所以我登录并可以发送数据,但如何进行身份验证?

我正在使用C#+ PHP REST API。 为了安全起见,我想我想知道用户每次请求都经过身份验证。 使用REST api,我可以非常容易地向服务器发送一些数据,但是如何以适当的方式保护这些数据?

我希望我的问题很明确。


如果你想创建你自己的REST api并且不能使用现有的框架,我会建议一个简单的登录系统,它返回某种类型的认证密钥。

假设您的应用程序发出api请求登录,您将验证用户的登录名/密码,并返回将用于后续请求的密钥。

理想情况下,您希望您的api密钥在一段时间后过期(如会话cookie),并强制用户重新进行身份验证,以避免会话劫持的潜在问题。


你有几个解决方案。 一种是使用HTTP身份验证,这是httpd内置的功能,所以你只需要在.htaccess设置它。

或者,您可以授予任何用户唯一的应用程序令牌(即'foo'),并且每个API方法都会要求将此应用程序令牌传递为第一个参数

或者实现像loginlogout这样的api方法,并且如果对于给定的l / p登录成功,那么您为该用户创建会话条目,并返回任何唯一的会话id,如前面的示例中所示,每个api方法都需要

最后一个是最好的,因为你再控制一个访问层,如果任何l / p受到攻击,那么你可以通过将密码更改为新密码来轻松阻止攻击者。 而且你更了解你的用户。 只有应用程序令牌,您不知道有多少独特的用户可以

链接地址: http://www.djcxy.com/p/71339.html

上一篇: Secure rest api for application

下一篇: How to consume REST in Java