【问题标题】:prevent bots / scrapers executing javascript to get output [closed]防止机器人/爬虫执行 javascript 以获取输出 [关闭]
【发布时间】:2017-11-12 07:06:24
【问题描述】:

我看到了关于 Cpatcha 和提交表单/方法来阻止机器人和内容 scrapers / leechers 的分配,但没有看到阻止那些获取整个 JavaScript 内容并执行它以获取和查看其输出内容的人.

是否可以阻止机器人执行 JavaScript 以获取输出。

我查看了 JavaScipt 中的 if 语句检查屏幕分辨率、键盘、鼠标、触摸屏基本人类所需功能等,但很难找到相关信息。

if (bot){ //don't execute Javascript don't let the bot get the real output.
return;
}

【问题讨论】:

    标签: javascript web-scraping bots


    【解决方案1】:

    唯一已知的机制是使用 javacsript 函数的缩小和混淆。在每次部署时或每天通过脚本过程更改它们。另一件事是在全局空间上没有窗口方法。

    您可能想查看Web Assembly,但目前并非所有浏览器都采用它。

    没有直接的方法可以完美地实现这一目标。如果人们花足够的时间,他们可以破解它。

    【讨论】:

    • 感谢我已经使用混淆的信息,但他们通过执行 JavaScript 来获取输出更进一步。所以现在他们正在执行混淆代码,这对他们来说应该是一个安全问题。
    • 一旦您向客户端公开代码或功能,您就失去了对前端可以做什么的所有权。作为我不建议的事情,您可以尝试将较旧的函数名称公开为不执行任何操作的函数。但如果他们使用桌面自动化工具或 selenium 类型的框架进行测试,你就无能为力了。
    • 因此,即使进行简单的逻辑检查,如 IF HTML 元素 ID 名称存在于 JavaScript 中,也不会对它们起作用?我想他们的机器人可能不知道页面上存在或应该存在哪些元素和 ID。甚至显示来自其他脚本的 Javascript 变量。
    • 机器人有多种形式。有些是自动化的,有些是学习的。这取决于您要修复的机器人类型。据我们所知,有些可能是硒记录器脚本。最好将您认为对服务器端很重要的任何安全逻辑移动或使用没有 javascript 的纯 HTML(这可能不是所有用例的解决方案)。
    • 我曾经与一位流量相当大的电子商务 CTO 级别的人交谈,询问您如何优化或识别机器人以进行价格抓取。他说我们没有。它几乎不占流量的 0.1%,在有人真正影响业务或减慢网站速度之前,它并不是一个真正重要的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-16
    • 1970-01-01
    • 2011-10-22
    • 2014-03-30
    • 2011-01-14
    • 1970-01-01
    相关资源
    最近更新 更多