标签: restful-authentication

Rails有内置的身份验证系统吗?

多年来我已经多次为webapps实现了身份验证系统,但在我再次执行之前,我想我会问是否有一个我应该知道的固定解决方案.

上次我检查时,没有内置的Rails身份验证系统,标准解决方案是restful-authentication插件.那还是这样吗?或者它现在已经被折叠到Rails中了?我已经看到了这种情况.

authentication ruby-on-rails restful-authentication

5
推荐指数
2
解决办法
1368
查看次数

在Restful Web服务中如何以编程方式获取用户名或密码(基本身份验证)

我在jboss上运行的Java EE应用程序(ejb3)中有宁静的Web服务.并且不知道如何以编程方式获取用户名或密码,例如调用服务方法时我希望能够将此用户主体作为smilar到jaxws

webServiceContext.getUserPrincipal().getName() 
Run Code Online (Sandbox Code Playgroud)

要么

(httpServletRequest) <-- request.getUserPrincipal()
Run Code Online (Sandbox Code Playgroud)

我很高兴听到解决方案,谢谢.

rest restful-authentication basic-authentication ejb-3.0

5
推荐指数
1
解决办法
3485
查看次数

使用MVC为iPhone应用程序构建RESTful API - 如何保护它?

我将为第三方供应商制作的iPhone应用程序编写服务.

我将使用ASP.NET MVC接受帖子并返回JSON格式的数据.

我的问题是,你如何保障它?

或许只使用API​​密钥?这是否足以确保只允许来自iPhone应用程序的数据到达指定的服务?

asp.net-mvc json restful-authentication ios4

5
推荐指数
1
解决办法
1607
查看次数

Spring安全性基于Web服务令牌的身份验证

我正在编写正在返回json并使用Spring MVC的restful Web服务.我正在使用Spring 3.x. 现在我想添加一个登录方法,它将检索用户名和密码并返回访问令牌,以便客​​户端可以进一步使用该令牌来调用其他方法.我认为这个标记应该有一个有限的生命周期.有这样做的好样本吗?我根本需要弹簧安全吗?再次,一个很好的样本将非常感激.

json restful-authentication spring-security access-token

5
推荐指数
0
解决办法
1227
查看次数

更正PHP RESTful应用程序的标头?

目标:一个RESTful API
问题:我在下面的方法是真正的RESTful API,还是缺少像我被告知的那样?
这是一个3部分的问题..

假设我有一个PHP项目,它有一个以XML或JSON格式返回数据的API,你可以像下面这样访问API ...

server.com/article/123 | Returns ID 123 using GET
server.com/article/new | Creates a new article using POST
server.com/article/123/edit | Edits an article with the ID 123 using POST
server.com/article/123/delete | Deletes article with ID 123 using POST
Run Code Online (Sandbox Code Playgroud)

1)
我总是读也PUT应该用于编辑对象,下面我把这个单词POST当用户发送POST到删除操作的URI时,我应该PUT在php中使用这样的东西吗?

$_PUT  = array();  
if($_SERVER['REQUEST_METHOD'] == 'PUT') {  
    parse_str(file_get_contents('php://input'), $_PUT);  
}
Run Code Online (Sandbox Code Playgroud)

2)
我在一段时间内写过的一个问题告诉我,这类似于RESTful API,但事实并非如此,我得到的答案是......

In short, your service is not RESTful, but it is close. Rather than …

php rest restful-authentication

5
推荐指数
1
解决办法
4500
查看次数

他们的应用中的Google身份验证和授权

Google提供了许多应用程序,如Plus,Gmail,Docs,Reader等.在内部,这些应用程序可以以某种方式安全地相互通信以查询信息/数据.我在概念上想知道Google如何在内部实现其应用程序中的安全身份验证和授权.有谁知道这个?

security authentication google-app-engine restful-authentication oauth-2.0

5
推荐指数
1
解决办法
177
查看次数

保护无会话的RESTful API端点

我为一个项目创建了一个简单的RESTful API,部分遵循了Riyad Kalla的这篇非常好的博客文章.现在,我已经在Stack Overflow上阅读了几十个类似的问题,但我似乎无法找到我的安全问题的答案.

简而言之,我的要求是这样的:

  1. 客户端有一个公共API密钥(纯文本,任何人都可以访问网络流量或正确检查代码源)
  2. 客户端使用公共API密钥向服务器发送请求
  3. 服务器有一个秘密的API密钥(除了开发人员之外的任何人都有秘密)
  4. 服务器创建由客户端的请求数据和秘密API密钥组成的HMAC-SHA1哈希
  5. 服务器向API服务器发送与客户端请求相同的请求,但包括生成的HMAC-SHA1
  6. API服务器根据它接收的公共API密钥在其数据库中查找秘密API密钥
  7. API服务器使用与开发人员服务器相同的数据重新创建HMAC-SHA1哈希
  8. 如果哈希匹配,则认为该请求有效并正常处理

我担心有人使用我的服务可以获取公共API密钥(通过嗅探网络流量),然后简单地通过他们的浏览器使用AJAX直接向开发人员的服务器发出相同的请求.因此,恶意用户可以被认证为合法用户并使用其他秘密API密钥访问API.

我会尝试举一个具体的例子.通常我会这样做:

  1. AJAX向我的服务器发出get请求.
  2. 我的服务器用我的API秘密哈希我的请求并将其发送到API服务器.
  3. API服务器验证我的请求并返回有效负载.

但我很害怕:

  1. Evil博士将嗅探我的公共API密钥.
  2. Evil博士将使用我的公共API密钥向我的服务器发出get请求.
  3. 我的服务器将使用我的API秘密来散布Dr. Evil的请求并将其发送到API服务器.
  4. API服务器验证并返回有效负载以完成Dr. Evil的恶意计划.
  5. 邪恶的博士笑了起来.

我还缺少什么,或者这只是RESTful API游戏的一部分?

更新:我自愿省略任何形式的时间戳验证,以保持简单,只关注身份验证问题.

更新2:我已经$_SERVER['HTTP_REFERER']为流程添加了验证.这里的目标是客户端必须与请求一起发送引用者,并且它必须与API侧数据库中列出的引用者匹配.不幸的是,HTTP引用可以很容易伪造.这是另一个安全级别,但仍然不完美.

更新3:我已经更改了服务器端代码,将引用者设置为远程IP地址.这会强制发送到我的服务器的每个请求使用秘密API密钥进行哈希处理,最终使用原始请求IP地址到达API服务器.然后可以验证此IP并且请求可以通过.我相信它还可以伪造$_SERVER['REMOTE_ADDR'],但它比假装更复杂$_SERVER['HTTP_REFERER']......我猜还是不完美.

更新4:根据这些帖子:如何伪造$ _SERVER ['REMOTE_ADDR']变量?https://serverfault.com/questions/90725/are-ip-addresses-trivial-to-forge,$_SERVER['REMOTE_ADDR']虽然很难做到伪造.但是,由于您无法控制伪造的网络,因此无法接收伪造请求的响应.该请求可以成功验证,但其响应不会落入恶意手中.

php api rest curl restful-authentication

5
推荐指数
2
解决办法
4035
查看次数

使用grails创建/管理RESTful API的有效方法是什么?

我已经构建了我的第一个grails应用程序.我的URL映射是默认应用程序提供的:

static mappings = {
    "/$controller/$action?/$id?"{
        constraints {
            // apply constraints here
        }
    }

    "/"(view:"/index")
    "500"(view:'/error')
}
Run Code Online (Sandbox Code Playgroud)

塞纳里奥

我有一个名为控制器,ColorController用行动savelist.它只是做这样的事情:

def save () {
   def colorInstance = new Color(params)
   colorInstance.save(flush: true)
}

def list () {
   [colorList: Color.list, colorTotal: Color.count()]
}
Run Code Online (Sandbox Code Playgroud)

我想为这些操作构建一个简单的API.

  • 保存操作应接受参数作为JSON,并在记录保存时提供成功的消息.
  • 列表操作应该将列表提供为JSON

问题

  • 我应该为api制作单独的URL映射吗?(例如http://<domain>/<app>/rest/controller/action)
  • 我应该为我的API制作一个单独的控制器吗?
  • 我使用spring security插件进行身份验证.但在某些时候我可能也想验证restful api.有什么解决方案?
  • 如果我使用相同的控制器,我如何修改这些简单的操作来做我需要的.

api rest grails restful-authentication

5
推荐指数
1
解决办法
1610
查看次数

实施宁静管理区域的角度安全风险是什么?

我有兴趣用AngularJS实现restful管理区域.由于API应该是无状态的,我想使用OAuth实现管理区域,我对像MitM这样的安全风险很可怕.

那么这种情况下的安全风险是什么?如何修复主题?

security restful-authentication angularjs

5
推荐指数
1
解决办法
113
查看次数

Python中的API调用身份验证(使用PHP示例)

我正在尝试编写一个脚本来与在线交流进行通信.
"公开"请求发送至:https://yobit.net/api/3/
"交易"请求发送至:https://yobit.net/tapi/

我的公众要求很好.然而,我的"私人电话"会返回404错误.我的钥匙100%正确.
我目前生成以下URL:https: //yobit.net/tapi/activeorders/ltc_btc/&apikey=MY_APIKEY_HERE&nonce=1456192036

我错过了解释文档吗?也许是一个错误的URL结构?

文档链接---> 此处
每个Trade API请求都应通过身份验证.通过发送以下HTTP标题来完成身份验证:密钥 - API密钥,例如:FAF816D16FFDFBD1D46EEF5D5B10D8A2签名 - 数字签名,POST参数(?param0 = val0&...&nonce = 1)通过密钥通过HMAC-SHA512签名后续请求中的参数nonce(最小值为1至2147483646)应超过前一个请求.要使nonce无效,必须生成新密钥.

我的剧本

class yobit(object):

def __init__(self, key, secret):
    self.key = key
    self.secret = secret
    self.public = ['info', 'ticker', 'depth', 'trades']
    self.trade = ['activeorders']


def query(self, method, values={}):
    if method in self.public:
        url = 'https://yobit.net/api/3/'
    elif method in self.trade:
        url = 'https://yobit.net/tapi/'
    else:
        return 'You're doing it wrong'

    urlString = ''
    for i, k …
Run Code Online (Sandbox Code Playgroud)

php python api restful-authentication

5
推荐指数
1
解决办法
5832
查看次数