我需要在发布和放置请求时保护CSRF的API。

为此,我认为移动设备(例如iOS)需要向API服务器(node.js)发送令牌。此令牌必须被加密,并且包含将在服务器端解密的JSON数据。

为了解密数据,移动设备使用服务器知道的相同密钥。

例如:{_csrf: 123456789}将通过通过移动设备发送的令牌解密,并由API检查是否匹配。


这是正确的方法吗?如果不是,正确的方法是什么?
如何在iOS上加密Jon数据并在node.js上解密? (JWT令牌没有适用于iOS的库)


您能否提供一个示例代码来加密iOS上的数据并解密node.js上的代码?

最佳答案

只需使用https,它就会加密所有内容,甚至包括任何查询字符串。

内容使用随机对称密钥加密,并且该密钥使用证书中的非对称密钥加密。另外,对称密钥的寿命很短。另外,您不必实现和加密例程。

另请注意,默认情况下,iOS9将要求所有连接均使用https,所有http连接都必须在plist中列入白名单。

如果您进行自己的加密,您将立即在设备和服务器之间共享加密密钥时遇到问题。这不是一个容易解决的问题。

10-08 08:46
查看更多