我一直在考虑将 Web API 用于我正在开发的新产品;初始版本将是一个 Web 应用程序,随后是移动/平板电脑应用程序,因此 Web API 路由似乎是一个不错的选择。
我已经阅读了很多关于使用加密和 SSL 保护 Web API 的内容,但是我不太清楚的一件事是从哪里调用 Web API。
如果我使用私有密码术来创建身份验证令牌,使用 ASP.NET 利用 HttpClient 等创建 HTTP 请求似乎是有意义的,因为 Web 服务器将具有私有加密密钥,因此 Web API 将具有相应的私有key 将知道请求来自网站。
这很有意义,因为移动/桌面应用程序将有一个单独的键等。
听起来很傻,但在我看来,浏览器客户端无法进行加密,因为私钥对用户来说相对容易可见,他们可以获取该密钥并在其他地方使用它,(移动/平板电脑客户端将能够做到加密,因为可以嵌入密钥)。
很公平,但是如果我发回我的网络服务器进行加密,我实际上是在将我的请求的详细信息发送到未加密的服务器,所以有人可以将请求发送到网络服务器,更改它服务器将加密并将更改发送到 Web API。
有没有办法在不泄露密钥的情况下从客户端(javascript)发送加密的 Web API 请求?我对服务器请求是否正确?SSL 会解决这个问题吗?
我想我对所有关于保护 Web API 的信息有点困惑,欢迎任何澄清!