保护应用程序的休息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方法都会要求将此应用程序令牌传递为第一个参数
或者实现像login
和logout
这样的api方法,并且如果对于给定的l / p登录成功,那么您为该用户创建会话条目,并返回任何唯一的会话id,如前面的示例中所示,每个api方法都需要
最后一个是最好的,因为你再控制一个访问层,如果任何l / p受到攻击,那么你可以通过将密码更改为新密码来轻松阻止攻击者。 而且你更了解你的用户。 只有应用程序令牌,您不知道有多少独特的用户可以
链接地址: http://www.djcxy.com/p/71339.html