reactjs - 如何进行内部 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```
解决方案
您可以这样做,以便只有知道“秘密”值的客户端才能访问 API,但由于您的客户端看起来是用 React 编写的,那么坚定的攻击者可能会检查您的代码并找到您的令牌。
React 将进行的任何 API 调用都将通过 HTTPS 进行,因此理论上任何客户端都可以“假装”他们是您的客户端。
推荐阅读
- r - 为什么我得到错误 $ operator is invalid without using $ in my code (in R)?
- python - 如何在 k8s 上运行 pyspark 作业?
- python - Matplotlib:如何将散点图和线图组合到一个图例条目
- reactjs - 在多个用户之间同步数据库
- php - 我在我的 ubuntu = “\” 上看到 DIRECTORY_SEPARATOR 和 php 7.2
- c# - 一个文件启动多个微服务
- ruby-on-rails - 通过 JIRA API 使用自定义字段创建问题
- html - 用 python 爬网到飞镖;re, bs4 to http & parser library in dart
- kubernetes - 更改本地IP。我应该在哪里更新 minikube 的 IP
- php - 如何检查我的数组是否包含特定单词