您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何保护仅用于前端的自己的后端API?

如何保护仅用于前端的自己的后端API?

如何确保后端端点只能由我自己的前端访问,而不能由其他任何人访问?

让我在这里告诉您一个残酷的事实……对于网络应用程序来说,这是不可能的,因为网络的工作方式自然而然。

让我们通过了解之间的差异来理解问题深入多了几分 和 是访问您的API服务器,为什么私有API的不存在。

该 是Web应用程序,你可以进行身份验证,授权和以多种方式确定,如使用OAuth流和/或OpenID的用户

绿洲

通常,OAuth代表资源所有者向客户端提供对服务器资源的“安全委派访问”。它为资源所有者指定了一个在不共享凭据的情况下授权第三方访问其服务器资源的过程。OAuth专为与超文本传输??协议(HTTP)配合使用而设计,实质上允许在资源所有者的批准下,授权服务器将访问令牌发布给第三方客户端。然后,第三方使用访问令牌访问资源服务器托管的受保护资源。

OpenID

OpenID Connect 1.0是OAuth 2.0协议之上的简单身份层。它允许客户端基于授权服务器执行的身份验证来验证最终用户的身份,并以可互操作且类似于REST的方式获取有关最终??用户的基本配置文件信息。

现在,你需要一种方法来确定 是你调用API服务器和这里的事情变得比大多数开发人员可能会觉得更靠谱。在 是发出请求到服务器API的东西,是不是真的你的真正的Web应用程序或者是一个机器人,自动化脚本或攻击者手动打探你的API服务器就像邮差的工具吗?

那么找出 开发人员往往求助于通常他们在头发送的API密钥,在cookie或隐藏在他们的Web应用程序的JavaScript代码和一些走一英里,并在网络在运行时计算它应用程序,因此成为与前一种方法相对的动态秘密,后者是嵌入在代码或标头中的静态秘密。

无论API是否没有公共可访问的文档,或者是否受到任何类型的秘密或身份验证机制的保护,一旦可以从Internet访问不再是私有的,因此任何知道其居住地的人都可以访问该API。使用开发工具中的“网络”标签即可轻松枚举每个端点。

在客户端运行的任何需要秘密访问API的内容都可能以不同的方式被滥用,您可以在有关移动API安全技术的本系列文章中了解更多 信息。尽管本文是在移动应用程序上下文中完成的,但它们仍与Web应用程序共享常用技术。他们将教您如何使用API??密钥,用户访问令牌,HMAC和TLS固定来保护API以及如何绕过它们。

混淆会使您的Javascript代码难以理解,这将使逆向工程变得困难,但是请记住,并非不可能,因此不要依赖它来隐藏敏感数据,而只是使它变得更难于理解。了解发生了什么。

您可能还想看看Google的reCaptcha V3,它可以区分真实用户自动化脚本,而无需用户交互。您需要将其添加到Web应用程序的每个页面中。

reCaptcha V3

reCAPTCHA是一项免费服务,可保护您的网站免受垃圾邮件和滥用的侵害。reCAPTCHA使用高级风险分析引擎和适应性挑战来防止自动化软件参与您网站上的滥用行为。这样做是为了让您的有效用户轻松通过。

另一种更复杂的方法是使用在后端使用机器学习和人工智能的User Behavior Anlytics(UBA)工具来防止API滥用,但它们无法100%阻止它。

为了解决这个问题 是访问,你需要使用一个你的API服务器或全部在一系列有关手机API的安全技术,验证码V3和UBA解决方案的文章中提到,并接受了解决方案,它们只能促使你的API未经授权的访问服务器更难绕过,但并非没有可能。

因此,您可能很难找到和访问您的API,但却无法将其真正锁定到Web应用程序。

其他 2022/1/1 18:34:44 有553人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶