相关疑难解决方法(0)

Google reCAPTCHA:如何在服务器端获取用户响应和验证

我正在做一个Java(JSP + Servlet)Web应用程序(我知道这个问题与技术无关).我希望使用最新的Goolge reCAPTCHA服务.

我正在玩这里找到的Goolge reCAPTCHA示例:

https://developers.google.com/recaptcha/docs/display#config

<html>
  <head>
    <title>reCAPTCHA demo: Simple page</title>
     <script src="https://www.google.com/recaptcha/api.js" async defer></script>
  </head>
  <body>
    <form action="?" method="POST">
      <div class="g-recaptcha" data-sitekey="my_site_key"></div>
      <br/>
      <input type="submit" value="Submit">
    </form>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

我能够看到显示的recaptcha图像如下:

在此输入图像描述

当我检查"我不是机器人"时,我得到以下信息:

在此输入图像描述

如您所见,有一个验证按钮,根据我的测试,用户响应会发送给Google进行验证.

如何获取用户响应,以便我可以在自己的后端代码中验证用户响应(如Google建议的https://developers.google.com/recaptcha/docs/verify).

g-recaptcha-response POST parameter when the user submits the form on your site
Run Code Online (Sandbox Code Playgroud)

在服务器端,我可以通过点击"提交"按钮,仅在首先使用Google成功验证用户时才从参数"g-recaptcha-response"获取用户输入.否则,"g-recaptcha-response"在服务器端是空白的.这意味着只有在客户端验证成功后才能进行服务器端验证.如果是这样,那么在服务器端进行另一次验证有什么意义,这是Google reCAPTHA提供的选项?

我错过了什么吗?

javascript java recaptcha

29
推荐指数
2
解决办法
10万
查看次数

客户是否应该使用GET或POST获取OAuth 2访问令牌?

OAuth 2.0草案v2-22第3.2节说:

在发出访问令牌请求时,客户端必须使用HTTP"POST"方法.

但是,如果您查看FacebookFoursquare OAuth2实现,他们会要求客户端发出一个简单的GET请求来请求访问令牌.他们要求客户将client_id和client_secret放在URL中.

我正在构建OAuth 2服务器,在看到Facebook和Foursquare的实现后,我强烈考虑打破协议,允许客户端通过GET请求访问令牌.我的网站使用的是SSL,类似于Facebook和Foursquare.

所以我的问题是:我有什么理由不允许客户通过HTTPS通过GET方法请求访问令牌吗?

authentication https authorization oauth oauth-2.0

24
推荐指数
1
解决办法
9468
查看次数

ASP.NET Web Api:如何使用URL参数传递访问令牌(oAuth 2.0)?

您是否知道如何使用url参数中的默认asp.net web api 2 OAuth 2授权机制生成的access_token.目前,我可以通过发送带有Authorization标头的请求来成功授权,如下所示:

Accept: application/json
Content-Type: application/json
Authorization: Bearer pADKsjwMv927u...
Run Code Online (Sandbox Code Playgroud)

我想要的是通过URL参数启用授权,如下所示:

https://www.domain.com/api/MyController?access_token=pADKsjwMv927u...
Run Code Online (Sandbox Code Playgroud)

asp.net oauth-2.0 asp.net-web-api owin

23
推荐指数
2
解决办法
2万
查看次数

用于验证信息的REST操作(GET,PUT或POST)是什么?

我的用户在iOS应用中输入一些信息字段.必须在我的服务器上验证此信息,该服务器具有RESTful API.验证后,iOS应用程序的UI会更改以指示结果.

GET,PUT或POST似乎都不合适,因为我没有获得资源,也没有创建或更新资源.

实现此验证的最佳拟合REST操作是什么?

rest post http put asp.net-web-api

20
推荐指数
4
解决办法
1万
查看次数

是否可以对websocket升级请求使用承载认证?

打开websocket连接的升级请求是标准HTTP请求.在服务器端,我可以像其他任何一样对请求进行身份验证.就我而言,我想使用Bearer身份验证.不幸的是,在浏览器中打开websocket连接时无法指定标头,这会让我相信使用承载身份验证来验证Web套接字升级请求是不可能的.所以 - 我错过了什么,还是真的不可能?如果不可能,这是设计,还是在websocket API的浏览器实现中明显疏忽?

authentication authorization websocket

20
推荐指数
2
解决办法
2万
查看次数

HTTPS,URL路径和查询字符串

这是我之前关于基于HTTPS的BASIC身份验证的问题的后续帖子

如果我使用HTTPS,资源和查询字符串的路径是否安全地传递到服务器?


URI: http:// server/path/to/a/resource?with = a&query = string
Server: server
path:/path/to/a/resource
query string: with = a&query = string

ssl https

16
推荐指数
2
解决办法
5702
查看次数

如何将身份验证标头添加到$ window.open

我有angularjs应用程序,用户输入保存到数据库的数据,然后在服务器端编译成pdf文件.所有访问都需要适当的身份验证标头.在填写所需数据后,用户按下按钮以保存数据,然后检索pdf文件.最好,我打电话给$window.open(url_generating_pdf我的angularjs应用程序.这很好用,并在另一个窗口中打开,但如何在此$window请求中添加身份验证标头?根据我的理解,我无法下载pdf,并使用ajax打印,所以我错过了这种身份验证.或者是否有其他方法可以从服务器调用url,并在另一个窗口中打开文件?

authentication download angularjs

15
推荐指数
2
解决办法
3万
查看次数

Web API 2 GET by query参数

我要从我的WCF Rest/Json服务切换到WebApi2,我正在寻找一种方法来映射这个方法:

[OperationContract]
[WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json, UriTemplate = "Users?mail={mail}&pw={pw}")]
UserData getUserByEmailAndPw(String mail);
Run Code Online (Sandbox Code Playgroud)

我想通过电子邮件和密码查询用户,因此我无法使用打算使用ID的默认GET.据我所知,你应该通过Rest中的属性来做到这一点......

我是否只需要为此注册路线或者是否有更好的方法(可能按照惯例)?

asp.net asp.net-web-api asp.net-web-api2

11
推荐指数
1
解决办法
4万
查看次数

如何使用JavaScript或Java清除浏览器(IE,Firefox,Opera,Chrome)历史记录,除了浏览器本身?

如何使用JavaScript或Java清除浏览器(IE,Firefox,Opera,Chrome)历史记录,除了从浏览器本身清除它?

javascript browser-history

8
推荐指数
1
解决办法
4万
查看次数

使用请求模块在Node.js中发送URL编码的参数

我正在尝试使用带有request模块的PasteBin API创建一个新的粘贴,如下所示:

var request = require("request");
request({
    url : "http://pastebin.com/api/api_post.php",
    method : "POST",
    qs : {
        "api_dev_key" : MY_DEV_KEY,
        "api_option" : "paste",
        "api_paste_code" : "random text"
    }
},function(err,res,body){
    ...
});  
Run Code Online (Sandbox Code Playgroud)

我的理解是,由于方法是POST并且提供了查询字符串参数,因此qs对象中的值将作为key=value对存储在正文中.(参考:如何在HTTP POST请求中发送参数?)

但是,我Bad API request, invalid api_option从PasteBin 回来了.所以我curl从我的终端编辑了这样的请求:

curl -X POST "http://pastebin.com/api/api_post.php" -d "api_dev_key=[MY_DEV_KEY]&api_option=paste&api_paste_code=some+random+text"  
Run Code Online (Sandbox Code Playgroud)

这很有效.

所以这导致了两个问题:

  1. POST提出请求并qs提供请求时,参数的具体情况如何?
  2. 如何仅使用request模块发送URL编码的正文?

request pastebin node.js npm

7
推荐指数
1
解决办法
7463
查看次数