多年来我已经多次为webapps实现了身份验证系统,但在我再次执行之前,我想我会问是否有一个我应该知道的固定解决方案.
上次我检查时,没有内置的Rails身份验证系统,标准解决方案是restful-authentication插件.那还是这样吗?或者它现在已经被折叠到Rails中了?我已经看到了这种情况.
我在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)
我很高兴听到解决方案,谢谢.
我将为第三方供应商制作的iPhone应用程序编写服务.
我将使用ASP.NET MVC接受帖子并返回JSON格式的数据.
我的问题是,你如何保障它?
或许只使用API密钥?这是否足以确保只允许来自iPhone应用程序的数据到达指定的服务?
我正在编写正在返回json并使用Spring MVC的restful Web服务.我正在使用Spring 3.x. 现在我想添加一个登录方法,它将检索用户名和密码并返回访问令牌,以便客户端可以进一步使用该令牌来调用其他方法.我认为这个标记应该有一个有限的生命周期.有这样做的好样本吗?我根本需要弹簧安全吗?再次,一个很好的样本将非常感激.
目标:一个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 …
Google提供了许多应用程序,如Plus,Gmail,Docs,Reader等.在内部,这些应用程序可以以某种方式安全地相互通信以查询信息/数据.我在概念上想知道Google如何在内部实现其应用程序中的安全身份验证和授权.有谁知道这个?
security authentication google-app-engine restful-authentication oauth-2.0
我为一个项目创建了一个简单的RESTful API,部分遵循了Riyad Kalla的这篇非常好的博客文章.现在,我已经在Stack Overflow上阅读了几十个类似的问题,但我似乎无法找到我的安全问题的答案.
简而言之,我的要求是这样的:
我担心有人使用我的服务可以获取公共API密钥(通过嗅探网络流量),然后简单地通过他们的浏览器使用AJAX直接向开发人员的服务器发出相同的请求.因此,恶意用户可以被认证为合法用户并使用其他秘密API密钥访问API.
我会尝试举一个具体的例子.通常我会这样做:
但我很害怕:
我还缺少什么,或者这只是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']虽然很难做到伪造.但是,由于您无法控制伪造的网络,因此无法接收伪造请求的响应.该请求可以成功验证,但其响应不会落入恶意手中.
我已经构建了我的第一个grails应用程序.我的URL映射是默认应用程序提供的:
static mappings = {
"/$controller/$action?/$id?"{
constraints {
// apply constraints here
}
}
"/"(view:"/index")
"500"(view:'/error')
}
Run Code Online (Sandbox Code Playgroud)
塞纳里奥
我有一个名为控制器,ColorController用行动save和list.它只是做这样的事情:
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.
问题
http://<domain>/<app>/rest/controller/action)我有兴趣用AngularJS实现restful管理区域.由于API应该是无状态的,我想使用OAuth实现管理区域,我对像MitM这样的安全风险很可怕.
那么这种情况下的安全风险是什么?如何修复主题?
我正在尝试编写一个脚本来与在线交流进行通信.
"公开"请求发送至: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)