使用TLS/SSL(HTTPS)加密时是否加密了所有URL?我想知道,因为我希望在使用TLS/SSL(HTTPS)时隐藏所有URL数据.
如果TLS/SSL为您提供全面的URL加密,那么我不必担心从URL隐藏机密信息.
我正在创建一个使用HTTPS的安全的基于Web的API; 但是,如果我允许用户使用查询字符串配置它(包括发送密码)这也是安全的,还是应该通过POST强制它?
我正在做一个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提供的选项?
我错过了什么吗?
之前有人问过这个问题:新的Google ReCaptcha没有发布/接收'g-recaptcha-response' - 但是没有正确答案.
我有与他完全相同的设置,但代码在这里失败:
if(!$captcha){
exit;
}
Run Code Online (Sandbox Code Playgroud)
所以$captcha=$_POST['g-recaptcha-response']
似乎是空的.
新的谷歌recaptcha与复选框服务器端php =这里的第二个答案也似乎不起作用.
有谁知道为什么会发生这种情况?
Google的recaptcha文档并没有像我想象的那样有用,这有点奇怪.我被要求采用当前现有的表格(每天发送几次垃圾邮件)并使用Google的新回程更新.旧的验证码有很多教程,但新的验证码并不多.我基本上只想要一个简单的表单来捕获名称,电子邮件,消息,然后用recaptcha替换我当前的"反机器人字段"(我使用的字段基本上问你2 + 2是什么,如果你输入任何东西,但是4,它不会发送).如果必填字段有效且recaptcha有效,那么我希望它向我发送一封包含表单字段内容的电子邮件.
我经历了简单的步骤:
注册我的网站获取密钥
在我的head标签中添加了这个片段:
<script src='https://www.google.com/recaptcha/api.js'></script>
Run Code Online (Sandbox Code Playgroud)在我的表单末尾添加了此代码段:
<div class="g-recaptcha" data-sitekey="#MYKEY#"></div>
Run Code Online (Sandbox Code Playgroud)在这一点上,recaptcha正好显示出来.但服务器端部分有点令人困惑.
这是我更新的联系表格,其中包含recaptcha:
<form method="post" action="contact-post.php">
<label>Your Name (required):</label>
<input name="name" type="text" placeholder="Enter your name here">
<label>Email Address (required):</label>
<input name="email" type="email" placeholder="Enter your email address here">
<label>Your Message (required):</label>
<textarea name="message" placeholder="Write your message here"></textarea>
<div style="margin-top:20px;" class="g-recaptcha" data-sitekey="#MYKEY#"></div>
<input id="submit" name="submit" type="submit" value="Submit Form">
</form>
Run Code Online (Sandbox Code Playgroud)
这是我当前的POST页面(我不确定在recaptcha代码中添加的位置):
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$human = $_POST['human'];
$from = 'From: My Website';
$to = 'myemail@gmail.com'; …
Run Code Online (Sandbox Code Playgroud) recaptcha ×3
https ×2
php ×2
ssl ×2
contact ×1
forms ×1
httprequest ×1
java ×1
javascript ×1
query-string ×1