1. NECaptchaValidate从页面传到应用后台,可以使用GET请求吗?
不能,NECaptchaValidate是一个Base64编码的字符串,使用了非URL-safe模式,所以这个值不能直接使用GET请求传输,另外由于NECaptchaValidate值比较长,也不建议在GET请求中传输(GET请求数据长度有限制)
2. 为什么需要二次校验?
用户每完成一次验证码验证(拖动拼图),易盾验证码后台会记录该次验证相关的验证信息,并且会对这些验证信息做衰减失效处理(目前默认为20分钟),二次校验是为了确保这次验证是最近20分钟内完成的。
如果不做二次校验,那么将可能导致攻击者预先人工完成大量验证码校验,并集中一次提交的攻击行为。
3. 同一个validate值能使用几次?有效时长是什么意思,默认多少?如何修改?
同一个validate值只能请求一次,超过1次会检验失败,二次校验接口返回false
validate有效时长,是指前端生成valdiate到后端校验的有效时间
默认20分钟,您可以在官网-验证码-业务管理中修改
4. 服务端二次校验返回false的几种情况
- 前后端的验证码ID不一致
- validate超过有效期(默认20min可以在管理后台进行配置)
- validate重复校验
5. user字段需要传吗?传空会有问题?
user字段可以填空值或一个定值,易盾这边不做强制校验
建议传用户账户便于后续定位数据
6. 同一个产品下不同业务使用的密钥对secretId和secretKey是否一致?
同一个产品下的不同业务共用密钥对,同一个账户下不同产品密钥对不同
7. C++语言的签名示例代码
请参考https://github.com/dun163/MD5