代码之家  ›  专栏  ›  技术社区  ›  sal-k

如何防止使用为React应用程序提供数据的API

  •  1
  • sal-k  · 技术社区  · 6 年前

    我做了一个web服务,我将使用一个React。服务的数据将从我的API中获取。

    但是有一种简单的方法可以找出我使用的端点,以及我发送的数据。这些知识给了我很多选择,让我的服务机器人。

    有什么办法可以防止这种情况发生吗?

    2 回复  |  直到 6 年前
        1
  •  1
  •   Estus Flask    6 年前

    这是做不到的。无论在客户端JavaScript中做什么,都可以进行反向工程和模拟。

    应致力于防止API被滥用,即根据客户端的活动或可用信息(用户代理、可疑请求、生成的流量)限制客户端或将其列入黑名单。如果API的使用允许验证码,可疑客户可以被要求证明他们的人性。

    有一半的措施可以应用于客户端应用程序,使其不利于滥用(也不利于开发)。

    防止未经授权访问未统一/未混淆的JS和源映射

    请求签名到浏览器API所涉及的硬代码部分 ,例如:

    apiKey = hash(NOT_SO_SECRET_KEY + document.querySelector('.varyingBlock').innerHTML)
    

    这就要求机器人模拟浏览器环境,使其工作效率大大降低。这也会对应用程序的设计产生负面影响。显然,SSR会有额外的困难,而且它不容易转换到本地平台。

        2
  •  1
  •   Shiva Kishore    6 年前

    1. 验证码
      使用captcha服务,如 recaptcha

    2. 速率限制Api使用。