仅出于浏览器环境接收而传输信息

Transmission of information solely for receipt by browser environment?

本文关键字:传输 信息 环境 浏览器      更新时间:2023-09-26

作为思想实验的一部分,我试图确定服务器是否希望提供一段数据,仅供浏览器环境接收和使用,即无法被爬行我的网站的机器人读取。

显然,如果这些信息是在源代码中发送的,或者实际上是通过任何通常的HTTP方式发送的,那么机器人就可以获取这些信息 - 到目前为止,非常简单。

但是,如果信息由服务器作为 websocket 消息传输呢:这难道不是只有浏览器环境中的一些相应的(并且可能经过身份验证的(JavaScript 才能接收的,从而阻止它被机器人拦截吗?

(这是基于我的假设,即机器人没有客户端环境,本质上是一个恶意的服务器端脚本,通过 cURL 之类的东西调用站点,假装是用户(。

这个问题的

另一种表述方式可能是:对于websockets的Web实现,消息的接收是否总是由客户端环境(即.JS(完成?

我无法回答 websocket,但有足够动机的攻击者会找到一种方法来模拟您需要的任何环境。通过 ajax 加载此内容,您可以消除随意的机器人。您可以使用机器人消除行为良好的机器人,.txt。

使用 WebSocket 没有任何区别。您无法逃避以下事实:您始终可以编写一个非浏览器客户端,该客户端的外观和行为与任何标准浏览器完全相同。

我可以伪造:您可能会阅读的任何HTTP标头(如浏览器供应商等(。origin标题也无济于事(我可以伪造它(。饼干也没有。我会阅读它们并归还它。

您可以通过使用强大的验证码来保护您的网站,并且仅在验证码解决后设置 cookie。这取决于验证码无法被机器人解决..