【问题标题】:How to secure RESTful Web Services (PROVIDER)如何保护 RESTful Web 服务(提供者)
【发布时间】:2012-01-17 22:45:55
【问题描述】:

我需要提供程序中的安全 Restfull 服务。我希望用户必须拥有使用 REST 服务的授权,并且我可以生成使用统计信息,或者如果不是注册开发人员,则根本不允许调用 REST 服务。

我一直在考虑用户在 URL 中发送电子邮件和密码 (http://autor.derf.com/api/search/email?=dsdfd@gmail.com&passwd=dasffsdf;) 但不是很安全.

我也读过关于 oauth 2.0 的文章,但是文档对于 Java 来说非常非常糟糕。

还有其他方法可以让 RESTful api 获得授权吗?

我想要通过 Iphone、Android、Windows Phone 和网络访问 Restfull API

提前致谢;)

【问题讨论】:

    标签: rest oauth authorization provider


    【解决方案1】:

    如果您打算自己编写服务的所有客户端(iPhone、Android 等),那么发送电子邮件和密码是一个不错的选择,只要提供商通过安全传输层(例如 SSL/HTTPS)进行通信。

    如果您希望公开自己的 API,您可以随时添加对 OAuth 1 或 2 的支持。 (OAUth 的整个想法是保护用户的密码,并更精细地控制客户端可以使用哪些 API 以及使用多长时间。

    但是,在您的情况下,我至少会考虑使用基本身份验证,其中典型的 HTTP 请求看起来有点像这样:

    GET /path/to/api HTTP/1.1
    Host: www.example.com
    Authorization: Basic aHR0cHdhdGNoOmY=
    

    “基本”之后的哈希只是 base64 编码的"username:password",或者在您的情况下为"email:password"。如果有人截获它,很容易简单地取消编码以获取纯文本用户凭据。所以HTTPS是必须的。

    » More information on basic authentication at wikipedia.

    【讨论】:

    猜你喜欢
    • 2011-06-16
    • 2014-09-13
    • 2017-01-19
    • 1970-01-01
    • 2013-03-02
    • 2014-03-04
    • 2013-12-29
    • 1970-01-01
    • 2016-01-12
    相关资源
    最近更新 更多