Reactjs 如何防止使用为React应用程序提供数据的my API
我创建了一个web服务,并将使用React。将从我的API获取服务的数据 但是有一种简单的方法可以找出我正在使用的端点,以及我正在发送的数据。这些知识为我的服务提供了很多选择 有什么办法可以防止这种情况发生吗?Reactjs 如何防止使用为React应用程序提供数据的my API,reactjs,api,security,Reactjs,Api,Security,我创建了一个web服务,并将使用React。将从我的API获取服务的数据 但是有一种简单的方法可以找出我正在使用的端点,以及我正在发送的数据。这些知识为我的服务提供了很多选择 有什么办法可以防止这种情况发生吗? 我知道,我可以要求签署所有请求,但这也很容易了解。这里有两个基本的预防措施,您可以使用 验证码 使用验证码服务,如。因此,用户只能在通过验证码测试后才能使用您的网站。机器人通过验证码是非常困难的 速率限制Api的使用。 将速率限制添加到api中。因此,登录用户在10分钟内只能发出10
我知道,我可以要求签署所有请求,但这也很容易了解。这里有两个基本的预防措施,您可以使用
使用验证码服务,如。因此,用户只能在通过验证码测试后才能使用您的网站。机器人通过验证码是非常困难的
将速率限制添加到api中。因此,登录用户在10分钟内只能发出100个请求,数量将取决于您的用例
这是不可能做到的。无论在客户端JavaScript中完成什么,都可以进行反向工程和模拟 应致力于防止API被滥用,即根据客户的活动或可用信息(用户代理、可疑请求、生成的流量)限制或黑名单客户。如果API的使用允许验证码,可疑客户可以被要求证明他们的人性 有一半的措施可以应用于客户端应用程序,使其不利于滥用(也不利于开发) 防止未经授权访问未统一/未融合的JS和源地图。可能需要根据每个用户对其进行授权。这将使调试和bug报告更加困难 请求签名到浏览器API所涉及的硬代码部分,例如: 这要求机器人模拟浏览器环境,使其工作效率大大降低。这也会以负面的方式影响应用程序的设计。显然,SSR会有额外的困难,而且它不容易转换到本机平台
apiKey = hash(NOT_SO_SECRET_KEY + document.querySelector('.varyingBlock').innerHTML)