仅出于浏览器环境接收而传输信息
Transmission of information solely for receipt by browser environment?
作为思想实验的一部分,我试图确定服务器是否希望提供一段数据,仅供浏览器环境接收和使用,即无法被爬行我的网站的机器人读取。
显然,如果这些信息是在源代码中发送的,或者实际上是通过任何通常的HTTP方式发送的,那么机器人就可以获取这些信息 - 到目前为止,非常简单。
但是,如果信息由服务器作为 websocket 消息传输呢:这难道不是只有浏览器环境中的一些相应的(并且可能经过身份验证的(JavaScript 才能接收的,从而阻止它被机器人拦截吗?
(这是基于我的假设,即机器人没有客户端环境,本质上是一个恶意的服务器端脚本,通过 cURL 之类的东西调用站点,假装是用户(。
这个问题的另一种表述方式可能是:对于websockets的Web实现,消息的接收是否总是由客户端环境(即.JS(完成?
我无法回答 websocket,但有足够动机的攻击者会找到一种方法来模拟您需要的任何环境。通过 ajax 加载此内容,您可以消除随意的机器人。您可以使用机器人消除行为良好的机器人,.txt。
使用 WebSocket 没有任何区别。您无法逃避以下事实:您始终可以编写一个非浏览器客户端,该客户端的外观和行为与任何标准浏览器完全相同。
我可以伪造:您可能会阅读的任何HTTP标头(如浏览器供应商等(。origin
标题也无济于事(我可以伪造它(。饼干也没有。我会阅读它们并归还它。
您可以通过使用强大的验证码来保护您的网站,并且仅在验证码解决后设置 cookie。这取决于验证码无法被机器人解决..
相关文章:
- 访问布局信息是否也会导致浏览器重排
- 定义完全独立的样式信息
- 使用html2canvas获取基本信息
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 从信息框调用弹出图像库
- 如何在不传递此信息的情况下查找被调用的元素
- 将谷歌自动完成地址信息放在页面上,而不是表格中
- d3js文本传输-示例代码不起作用
- 如何通过解析类信息来使用jQuery创建类
- 包含数据库中相关信息的开放模态
- 单击按钮即可在浏览器的新选项卡中打开 Sapui5 详细信息页面
- 如何调整信息窗口的大小并点击按钮?+更改信息窗口的内容
- 通过AJAX传输变量
- 仅出于浏览器环境接收而传输信息
- javascript如何使用在网站之间传输信息
- 点击后在一个弹出表中传输每个详细信息
- 在Google Scripts中使用JavaScript将信息传输到电子表格,但电子表格显示未定义
- 将数据库信息从php传输到mysql_fetch_array时没有按预期工作
- React重定向和传输信息到另一个页面
- 在 Chrome 中的用户脚本之间传输信息