前端UI使用的后端API是否应该(以及如何)得到保护



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

这是web应用程序关心的问题吗?我浏览了其他一些网站(例如Reddit),我确实能够检查是否正在进行API调用,我甚至通过cURL复制了它,得到了相同的响应。

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

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

有什么想法吗?

我正在使用bcrypts=>https://www.npmjs.com/package/bcryptjs+我的MEAN应用程序中的jsonwebtokens。Bcryptjs在服务器端创建一个salt,并向客户端发送加密的令牌。API调用使用相同的令牌。这使得任何网络钓鱼尝试都更难解码。

请改用HTTPS。=>querystring参数在HTTPS(HTTP+SSL)中是否安全?

最新更新