我正在使用C#实现REST Web服务,该服务将作为云服务托管在Azure上.由于它是REST服务,因此它是无状态的,因此没有cookie或会话状态.
只能通过HTTPS(StartSSL.com提供的证书)访问Web服务.
用户成功登录服务后,将获得安全令牌.此令牌将在将来的通信中提供身份验证.
令牌将包含客户端的时间戳,用户ID和IP地址.
所有通信都只通过HTTPS进行,因此我不担心在重放攻击中被拦截和使用的令牌; 无论如何,令牌将有一个到期日.
由于这是面向公众的服务,我担心有人可以注册服务,登录然后修改他们收到的令牌以访问其他用户的帐户.
我想知道如何最好地保护令牌的内容并验证它没有被篡改.
我计划执行以下操作来保护令牌:
客户端成功登录服务,服务执行:
当客户端调用服务时,它会将未加密的JSON包中的加密令牌和签名发送到服务.服务会
我对加密一无所知,所以我有一些问题:
由于所有通信都通过HTTPS进行,因此未加密的JSON包在到达客户端之前并不真正未加密.
此外,我可能希望稍后在PHP中重新实现该服务,所以这一切都需要在PHP中可行.
谢谢你的帮助