我正在使用Node.js,MySQL和JSON Web Tokens来构建api。
我的JWT看起来像这样:
echo '<a "data-toggle=\'modal\'", "data-target=\'#uoc-modal\'" href="\' . get_the_permalink() . \'">';
及其声明解码为:
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJyb2xlcyI6WyJsb2dnZWRfaW4iLCJhZG1pbiJdLCJpZCI6NzEsImlhdCI6MTQ1OTQ0NjU5MCwiZXhwIjoxNDU5NTMyOTkwfQ.BBbdyFMztYkXlhcBjW6D5SsKxtaRiZJqiNShOroQmhk
当api端点收到JWT时,调用带有id 71的User表来获取任何相关细节或使用JWT中的id是否更安全?
理想情况下,我们会将大量调用保存到User表中,但是存在安全威胁吗?恶意用户在调用端点之前是否无法更改该ID或角色?
答案 0 :(得分:4)
JWT已签署。如果用户更改了有效负载上的任何内容,则签名验证将失败,您将知道数据已被篡改。
话虽如此,数据本身并未加密。您可以使用用户ID - 但除了可以公开的内容之外,不要添加敏感信息。
有关JWT验证和生命周期的更多信息:
https://github.com/auth0/node-jsonwebtoken#jwtverifytoken-secretorpublickey-options-callback