我想知道使用客户端指纹作为JWT秘密进行编码是否是最佳实践。但是,我在WWW上找不到任何与此问题相关的信息,但到目前为止,对我来说有意义。
我正在考虑使用JavaScript生成指纹客户端,并在每次调用时将其发送到API。然后,API应该将指纹与硬编码的秘密一起使用,以对令牌进行编码和解码。
这不是预防CSRF的好方法吗? 还是我错过了其他东西? 或大体上:用JWT预防CSRF的最佳方法是什么? (我使用的是PHP和VueJS,是否存在与案例相关的解决方案?)
答案 0 :(得分:0)
我从来没有听说过。
使用私钥或共享机密对令牌进行签名。使用指纹意味着您可以将一个(或多个)手指与私钥相关联,然后计算令牌。
但是,这看起来与我正在使用的Webauthn protocol非常相似。使用Android设备时,浏览器可以与指纹/屏幕锁进行交互以验证用户身份。设备发送的数据是JWT,可以使用Google API进行验证(请参见Android SafetyNet)。