如何在不经过注册用户身份验证的情况下保护公共API请求
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在不经过注册用户身份验证的情况下保护公共API请求相关的知识,希望对你有一定的参考价值。
我已经解决了一个问题,即我无法理解组织如何从任何收集数据的人那里保护其公共api。我知道我们使用护照和其他方式的身份验证令牌来保护私人信息免受未经授权的用户的侵害。但是有些事情,例如公共搜索引擎,不需要通过身份验证即可在Facebook上通过搜索或访问“个人资料信息”页面找到人。这意味着存在不需要用户进行身份验证的开放式公共api。
但是经过几个组织,我没有收到任何可以通过Postman或通过url简单访问的公共api请求。
因此,我很感兴趣组织如何保护其公共api免受请求的侵害。前端如何将请求发送到那些公共的(kinda私有api),或者即使它具有用于各种公共api调用的某种默认api密钥,它们如何保护人们的请求,如果在我们现代的浏览器中我们可以访问本地存储或Cookies,我们可以在其中提取该公共api_token
我对MERN STACK和Laravel + SPA React应用程序感到困惑。
开发用于api调用的公共路由,都可以从浏览器url或邮递员访问它们,除非该路由是私有的,并且需要已经注册用户的passport或jsonwebtoken的auth_token。但是我正在尝试在应用程序中实现用户无需身份验证即可搜索和访问产品详细信息。
但是很明显,我不希望任何类型的大数据工程师都可以轻松地从我的Web应用程序中窃取所有公共数据,除非他不懒惰并且对每个公共产品详细信息页面进行html解析。
因此,如何在后端应用程序中保护上述公共api路由。以及它如何处理Facebook,Google,LinkedIn等大型组织。
之所以问这个问题,是因为找到MERN Stack课程非常容易,他们将教您如何为授权用户进行身份验证等等。甚至是LAMP技术。但是没有人解释如何在不要求任何用户登录的情况下保护这些数据。
非常感谢任何愿意回答这个漫长而令人困惑的问题的人。
[很多时候,我看到通过基本身份验证或OAuth保护API的安全。当您使用基本身份验证时,您将发送带有以base64编码的用户名和密码的授权标头。当您使用HTTPS / SSL连接时,标题将被加密。
以上是关于如何在不经过注册用户身份验证的情况下保护公共API请求的主要内容,如果未能解决你的问题,请参考以下文章
具有公共/私有访问权限的 Appsync 身份验证,无需 AWS Cognito
如何在不使用身份验证的情况下保护 RESTful Web 服务
如何在不使用 Firebase 身份验证的情况下保护 Firebase 存储? (下一个)
ASP NET API - 在不打开 Microsoft 登录页面的情况下使用 Azure AD SAML 协议对用户进行身份验证