当前位置: 首页 > 知识库问答 >
问题:

Spring boot REST API只接受来自前端的调用

萧琛
2023-03-14

我是Spring boot rest api的新手。

我有以下几种情况:

  1. 密钥斗篷已安装并配置用于身份验证
  2. Spring Boot微服务
  3. 角前端

Angular通过Spring Cloud gateway调用微服务。

我设计了自己的登录页面,它使用KeyClope进行身份验证并获取令牌。很好。

是否有任何方法允许使用未注册用户的通用令牌仅从Angular调用微服务?

为什么我想要这个,是为了保护微服务不被直接从邮递员等任何其他工具访问。

任何指导/提示将不胜感激。

非常感谢

共有2个答案

楚畅
2023-03-14

通过浏览器从角应用程序到后端微服务的调用可以很容易地使用curl、POSTMAN、http pie等工具来执行。我们无法阻止这一点。

即使您认为,在不向未注册用户提供凭据的情况下获取令牌,并使用该令牌向特定API调用后台微服务,也可以解决这个问题。任何人都可以很容易地以未注册用户的身份从浏览器中获取令牌,并使用该令牌从POSTMAN、curl等工具拨打电话。所以我们无法阻止来自这些工具的呼叫

您所能做的就是通过使用CORS、API-节流来减轻攻击

翁宜年
2023-03-14

我希望你想让未注册用户访问某些页面。假设任何用户都可以访问登录页面和登录终点,即使他们尚未注册。在这种情况下,我们通常不需要任何令牌机制,相反,你可以有一个IP限制机制,如果用户在X分钟内访问网页N次,就会在Y分钟内阻止该IP。这通常是用来防止ddos攻击的。

没有办法完全阻止邮递员的访问,因为邮递员可以通过添加某些标题或其他参数来模拟任何浏览器请求,即使您为未注册用户准备了一些令牌。

 类似资料:
  • 我有一个应用程序与Spring-Boot一起提供服务。我已经为“API/...”添加了一些控制器--这些调用可以执行Angular Frontend需要的不同操作。我如何保护这些URL以便只有我的前端可以访问examlpe.com/api/...而不是每个用户?我不希望任何人能够访问examlpe.com/api/..但是他们应该能够访问example.com。 url example.com/a

  • 在读取我从 字符串并尝试将值分配给 POJO 类时遇到问题。 当我使用此格式时,它可以工作(意外发现,复制粘贴): 但实际上从中读取时,它看起来像下面一个:- 这是我的代码: 我的问题不是我不知道如何将JSON字符串编组到POJO,而是我从获得的JSON响应对于无效。

  • 问题内容: 我有一个简单的HTTP Server站在Golang中: 在调用方不是localhost的地方断开连接的最佳方法是什么?目前,我正在考虑检查底层的连接信息,并确保IP地址为,但这在最终删除连接之前浪费了大量资源(并运行了大量Go代码)。理想情况下,我可以检测Golang服务器以基于IP地址丢弃初始TCP SYN数据包,而根本不创建TCP连接(或显示该端口正在侦听)。 前进的最干净的道路

  • 我刚刚开始使用Sockets,对于我当前的项目,我需要能够从客户端控制我的程序,但是如果我的项目合作伙伴想同时使用他的客户端,服务器不会向他发送“您已连接”消息,如连接类所示。所以我假设服务器不同时接受多个客户端。我尝试过使用类Connection的Thread,但这也不会向第二个客户端发送消息“您已连接”。我在这里做错了什么? 这是我用来同时连接多个用户的线程: 编辑:附加信息 在第一个客户端连

  • 我正在开发一个具有多个客户端的标准java RMI服务器。这些客户机有一个菜单,在那里他们可以调用服务器为他们做各种事情。 一种方法涉及一个队列,他们可以在其中将作业发送到队列并等待它得到处理。RMI服务器自动为所有客户端处理线程,但当涉及到此方法和队列时,我如何阻止此请求,例如: 首先调用客户端1,然后再调用客户端2(此处客户端1应首先从服务器接收消息,客户端2应等待服务器处理客户端1请求所需的

  • 问题内容: 我已经在机架空间上启动了CentOS服务器并执行了‘d。然后。因此,只是准系统。 我可以通过ssh(22)远程访问其IP地址,所以DNS或其他任何问题(我认为…)都没有问题,但是当我尝试通过浏览器等通过端口80进行连接时,拒绝连接。 但是,从本地主机,我可以使用telnet(80),甚至可以使用lynx并毫无问题地得到服务。telnet从外部(我的房子,我的学校,当地的咖啡店等)在22