通过REST API将数据提供给前端时,是什么阻止了第三方访问和“挖掘”?

弗雷格利亚的天气

就上下文而言,我不是Web开发人员,也不是其他任何人,但是我偶尔会尝试一些小型项目,主要是出于娱乐目的,因此我可能会误用某些术语。

最近,我了解到存在两种在页面中提供数据的模式:

  • 让服务器访问数据库,然后根据数据呈现模板并为用户“交付”就绪页面。
  • 发送一个“不完整”页面,并让前端用脚本填充数据。

在第二种模式中,我将依靠API作为我的前端和数据库之间的桥梁,并且基本上我的前端将对端点进行调用,这些端点/api/something返回用于填充页面的json对象。

尽管这似乎是最常见的模式,但它对我来说却是一个危险信号,因为:是什么导致人们无法从第三方应用程序访问我的API并以一种很好的结构化方式获取我的数据?例如,如果Stack Overflow将通过API调用在前端加载问题,则该API必须是开放的,并且代码在前端可用。什么会阻止某人使用其数据创建Stack Overflow的“克隆”,或者只是不断调用API进行数据挖掘?

我了解到,当页面完全由后端呈现时,可以简单地刮除数据,但与在一个很好的结构化json对象中公开提供数据相比,这似乎还没有问题。

翻转

通常,我给别人的建议是接受人们可能窃取您的内容。有办法让这个做起来难,但最终你的业务应该不会在这个铰链发生。

减轻此问题的最明显方法是执行此操作,例如,进行僵尸程序检测(来自单个ip / ip块的过多请求)并将事情置于身份验证之后。

如果启用了身份验证,则可以为每个用户设置限制等级,并阻止使用Captchas自动注册。

什么会阻止某人使用其数据创建Stack Overflow的“克隆”,或者只是不断调用API进行数据挖掘?

人们正在积极地搜集SO,并创建具有被盗内容的网站。不过,stackoverflow的价值不仅限于内容。人们可以在Stackoverflow.com上找到他们,也没有理由要人们使用这些其他网站。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

通过REST API发送第三方凭据的最佳方法

带有第三方提供商的REST API上的OAuth 2.0

为第三方服务访问保护 rest api 的最佳实践

使用OAuth保护我的REST API,同时仍然允许通过第三方OAuth提供程序进行身份验证(使用DotNetOpenAuth)

通过REST API与第三方应用一起操作的DRF序列化器

如何从第三方REST API获取数据并在页面上显示

无法使用第三方提供的类通过嵌套类型访问外部类型XXX的非静态成员

开发者如何通过ios上的应用群找到提供共享数据的第三方公司?

通过第三方应用程序通过Internet进行远程访问

如何通过Ember中的脚本标签提供第三方js库?

如何通过第三方应用程序访问Yii2(HumHub)

通过OAuth在AWS中进行第三方管理员访问

oauth2通过提供的客户端ID /密码通过db获取受信任的第三方客户端的访问令牌

测试时如何在Django Rest Framework端点内模拟第三方库?

如何通过玩笑窥探第三方功能?

Firebase可以通过第三方实施吗?

通过Webpack要求第三方RequireJS模块

通过第三方代码,C# 解密

允许使用第三方API从Golang的REST端点下载文件

在Java中使用curl调用第三方REST API

当我尝试通过 Pandas 将原始数据 txt 提供给 python 时,为什么会出现 NaN?

通过Python C扩展包括和分发第三方库

如何通过Flask Web App安装第三方模块和库

通过 Firebase Cloud 函数调用第三方 API(使用 Blaze 计划)。反应/还原

通过第三方身份验证保护资源服务器RESTful API

是否可以将GNU Make作业服务器环境“传递”到通过第三方(非Make)提供服务的子Make

通过 Azure AD B2C 将第三方 IDP 的访问令牌传递给应用程序

是否可以将jmeter的响应数据提供给REST API?

通过(Rest)API管理AzureSearch