背景:我的网站非常简单,包含一个带有链接列表的首页(由3rd party服务提供)-每个链接都会弹出带有“提交”按钮的文件上传输入。在该弹出窗口中,我嵌入了Recaptcha脚本,并在提交文件时验证了令牌。由于存在多个弹出设置,因此我选择V3进行零用户与验证机制的交互。
现在,出现一个问题-我该如何解释Google对Google的回应。
Google文档第3版说:
reCAPTCHA通过查看您网站上的实际流量进行学习。因此,在暂存环境中或实施后不久的分数可能与生产环境有所不同。由于reCAPTCHA v3从未中断用户流程,因此您可以先运行reCAPTCHA而无需采取任何措施,然后通过在管理控制台中查看流量来确定阈值。默认情况下,您可以使用0.5的阈值。
从我的描述中,我很清楚score,最重要的是-最可能的机器人为0.0,最可能的机器人为1.0。所以在我的代码中,我检查success == true并score >= 0.5
但是- 我在网上找到的用于服务器端验证的V3示例中,没有一个与分数有关。这是其中的3个 这三个仅检查请求是否成功:
https://dzone.com/articles/adding-google-recaptcha-v3-to-your-laravel-app
最后,我的问题是-是对V3机制的误解,还是我错过了一些东西?
谢谢。
我正在使用 CDK typescript lambda 堆栈,连接到 API 网关。当我发送以下响应时,一切正常:
const res = await request<ResponseModel>(req);
return {
statusCode: res.status,
headers: {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Credentials': true
},
body: JSON.stringify(res.data)
};
Run Code Online (Sandbox Code Playgroud)
但是,我尝试使用通用常量设置标头,结果失败:
// common-headers.ts
export const CommonResponseHeaders = {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Credentials': true
};
//function.ts
import { CommonResponseHeaders } from '../../common/common-headers';
const res = await request<ResponseModel>(req);
return {
statusCode: res.status,
headers: CommonResponseHeaders,
body: JSON.stringify(res.data)
};
//stack.ts
const function = {
name: 'myFunction',
runtime: Runtime.NODEJS_14_X,
entry: path.join(__dirname, './function.ts'),
vpcSubnets: {
subnetType: SubnetType.PRIVATE_WITH_EGRESS
},
handler: 'handler',
environment: …Run Code Online (Sandbox Code Playgroud) 编写以下脚本是为了在预提交挂钩上按键对 JSON 文件进行排序:
/*
* Will reorder all files in given path.
*/
const sortJson = require("sort-json");
const fs = require("fs");
const chalk = require("chalk");
const log = console.log;
const translationsPath = process.argv.slice(2).join(" ");
function readFiles(dirname) {
try {
return fs.readdirSync(dirname);
} catch (e) {
log(chalk.red(`Failed reading files from path; ${e}`));
}
}
log(
chalk.bgGreen(
`Running json sort pre-commit hook on path: ${translationsPath}`
)
);
const files = readFiles(translationsPath);
files.forEach((file) => {
log(chalk.yellow(`Sorting ${file}...`));
try {
sortJson.overwrite(`${translationsPath}\\${file}`);
log(chalk.green(`Finished sorting ${file}`)); …Run Code Online (Sandbox Code Playgroud)