2 回答
TA贡献1817条经验 获得超6个赞
随机字符串检测比较复杂,与机器学习有关。我不建议您自己实现它,也许拼写检查 JS/C# 库会有所帮助。
除此之外,关于机器人预防,我尝试提出一些建议:
确保您已正确实施 Google recaptcha。如果可能,请使用 reCAPTCHA v3,并确保您已在后端验证 g-recaptcha-response。Google recaptcha 并非 100% 可靠,可以被一些 Anti Captcha 解决方案绕过,但正确的实现是基本的。
过滤掉可疑的 IP 地址。阻止发送随机生成的字符串的 IP 地址。
TA贡献2012条经验 获得超12个赞
带有 .js 扩展名的随机 16-40 个随机字符名称脚本,您可以在其中查看以下格式的信息,如 userAgentKey、timezoneKey、browserKey。您可以使用 XHR 和 JS 信息在 Sources 选项卡或 Network 选项卡中检查脚本。您可以创建正则表达式来获取将匹配文件信息的所需脚本信息。[A-Za-z0-9]{14,40}.js 例如:ytpbsalvddssjopc.js
interrogate: function(e) {
var t = {};
t = this.userAgentKey(t),
t = this.languageKey(t),
t = this.screenKey(t),
t = this.timezoneKey(t),
t = this.indexedDbKey(t),
t = this.addBehaviorKey(t),
t = this.openDatabaseKey(t),
t = this.cpuClassKey(t),
t = this.platformKey(t),
t = this.doNotTrackKey(t),
t = this.pluginsKey(t),
t = this.canvasKey(t),
t = this.webglKey(t),
t = this.touchSupportKey(t),
t = this.videoKey(t),
t = this.audioKey(t),
t = this.vendorKey(t),
t = this.productKey(t),
t = this.productSubKey(t),
t = this.browserKey(t),
t = this.windowKey(t),
t = this.locationKey(t),
t.fonts = "",
t.devices = null,
this.keys = t,
this.parallel([this.fontsKey, this.devicesKey], e)
添加回答
举报