我有一个使用node.js 和 express.js构建的 api 。现在我有一个不安全的 api,任何人都可以在其中获取、发布、放置、删除记录。
我面临以下问题。我的rest api不应该对用户进行身份验证,而是对应用程序进行身份验证。例如,我的移动应用程序应该有一个有效的令牌来访问 api。对于 Web 应用程序也是如此。
另一个用户案例:我的 api 将被另一个只使用一个 rest 调用的应用程序使用。因此,在我不知道的应用程序中(大部分情况下)我不知道的代码中的某个地方将触发对我的 api 的休息调用。由于不涉及 cookie 或会话,我如何保护此类访问?
我的第一个想法是,创建一个用户和密码。每个 api 调用(通过 https)都必须包含凭据。密码可能会被散列。但是我读了这个
用户名和密码、会话令牌和 API 密钥不应出现在 URL 中,因为这可以在 Web 服务器日志中捕获并使其具有内在价值。
来自https://www.owasp.org/index.php/REST_Security_Cheat_Sheet
对此有何建议?我阅读了有关 oauth 的信息,但这涉及重定向,我无法想象这将如何与移动应用程序一起使用,例如在 android 上。