首页 > 解决方案 > 如何进行内部 API 设计,其中只有 react 应用程序可以收听`internal_api`?

问题描述

我想在internal API不向世界公开 API 的情况下执行(获取、发布)操作,因为它只是用于创建新订阅者、管理登录页面、发送电子邮件以及主要create, update, delete针对我不想公开的管理员操作/api/v1/

version: '3.7'
services:
  internal_api:
    build:
      context: ./backend/services/internal_api
      dockerfile: Dockerfile
    container_name: internal_api
    command: gunicorn internal_api.wsgi:application --bind 0.0.0.0:8000 -w 2
    volumes:
      - static_app:/home/app/app/static
    ports:
      - 8000:8000
    env_file:
      - ./devops/.env.internal_api.prod
    depends_on:
      - database_01
  landing:
    build:
      context: ./frontend/landing
    container_name: landing
    volumes:
      - ./frontend/landing:/usr/src/app
networks:
  external_network:
  internal_network:
    internal: true```

标签: reactjsdjangodockerdocker-compose

解决方案


您可以这样做,以便只有知道“秘密”值的客户端才能访问 API,但由于您的客户端看起来是用 React 编写的,那么坚定的攻击者可能会检查您的代码并找到您的令牌。

React 将进行的任何 API 调用都将通过 HTTPS 进行,因此理论上任何客户端都可以“假装”他们是您的客户端。


推荐阅读