是否应该(以及如何)确保前端UI使用的后端API?

问题描述 投票:1回答:1

假设您正在开发一个由后端HTTP API组成的应用程序,该API提供了前端UI。 UI在客户端浏览器上呈现后,将需要对后端进行某些调用(例如,获取视图数据)。 但是,例如,可以在Chrome的开发者控制台上检查所有这些调用。 这暴露了我的应用程序的整体逻辑和内部API端点。

这是Web应用程序的问题吗? 我环顾了其他一些网站(例如Reddit),确实可以检查是否进行了API调用,甚至设法通过cURL进行了复制,并返回了相同的响应。

解决这个问题的第一个想法是对所有数据进行加密,并在前端应用程序内部对其进行解密。 但是,我认为这不会提供太大的安全性,因为私钥必须在应用程序的源代码中进行硬编码,也可以由现代浏览器进行检查。 此外,这可能会严重影响应用程序的性能。

我能想到的最好的办法就是以某种方式为会话分配一个令牌(可能是JSON Web令牌?)(然后又分配给一个用户)。 进行API调用将需要此令牌,并且它可能具有较短的到期时间。 但是,令牌仍可以在HTTP请求中看到。

有任何想法吗?

rest web-services web-applications api-design
1个回答
0
投票

我在我的MEAN应用中使用bcrypts => https://www.npmjs.com/package/bcryptjs + jsonwebtokens进行相同操作。 Bcryptjs在服务器端创建一个盐,然后将加密的令牌发送到客户端。 相同的令牌用于API调用。 对于任何网络钓鱼尝试,这都会使解码变得更加困难。

请改用HTTPS。 => 查询字符串参数在HTTPS(HTTP + SSL)中是否安全?

© www.soinside.com 2019 - 2024. All rights reserved.