什么阻止第三方访问和“;采矿”;当通过RESTAPI向前端提供数据时?

什么阻止第三方访问和“;采矿”;当通过RESTAPI向前端提供数据时?,api,rest,Api,Rest,作为一个背景,我不是一个web开发人员或任何东西,但我偶尔尝试小项目,主要是为了好玩,所以我可能会误用一些术语 最近我了解到,在页面中提供数据有两种模式: 让服务器访问数据库,然后根据数据呈现模板,并为用户“交付”准备好的页面 发送一个“不完整”页面,让前端用脚本填充数据 在第二种模式中,我将依赖API作为前端和数据库之间的桥梁,基本上我的前端将调用端点/API/something,它返回用于填充页面的json对象 虽然这似乎是最常见的模式,但它给我带来了一个危险信号,因为:是什么阻止人们从

作为一个背景,我不是一个web开发人员或任何东西,但我偶尔尝试小项目,主要是为了好玩,所以我可能会误用一些术语

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

  • 让服务器访问数据库,然后根据数据呈现模板,并为用户“交付”准备好的页面
  • 发送一个“不完整”页面,让前端用脚本填充数据
在第二种模式中,我将依赖API作为前端和数据库之间的桥梁,基本上我的前端将调用端点
/API/something
,它返回用于填充页面的json对象

虽然这似乎是最常见的模式,但它给我带来了一个危险信号,因为:是什么阻止人们从第三方应用程序访问我的API,并以良好的结构化方式获取我的数据?例如,如果堆栈溢出将通过API调用在前端加载问题,则该API必须打开,并且代码在前端可用。如何防止某人使用其数据创建堆栈溢出的“克隆”,或只是不断调用API进行数据挖掘


我知道,当页面完全由后端呈现时,数据可以简单地被刮取,但这似乎比在一个漂亮的结构化json对象中公开提供数据问题要小。

一般来说,我给人们的建议是,人们可能会窃取你的内容。有很多方法让这件事更难做到,但最终你的生意不应该依赖于这件事不发生

缓解此问题的最明显的方法是执行bot检测(来自单个ip/ip块的过多请求)和将事情置于身份验证之后

如果启用了身份验证,则可以对每个用户进行速率限制,并防止自动注册CAPTCHA

如何防止某人使用其数据创建堆栈溢出的“克隆”,或只是不断调用API进行数据挖掘


人们正在积极地清除SO,并创建包含被盗内容的网站。stackoverflow的价值不仅仅是内容。Stackoverflow.com是人们所在的地方,人们没有理由使用这些其他网站。

网站上有很多垃圾谷歌匹配,所以问题和答案都被撕掉了。。谢天谢地,搜索引擎通常仍会将原始来源排名更高,尽管这也会受到SEO恶作剧的影响:-/