安全地存储访问令牌

2024-04-17

我应该采取哪些安全措施来确保,如果我的数据库受到损害,长寿命访问令牌不会被盗?

长寿命访问令牌与特定服务的用户名和密码一样好,但从与其他人的交谈看来,大多数人(包括我自己)都以纯文本形式存储访问令牌。这似乎与以纯文本形式存储密码一样糟糕。显然,人们无法对令牌进行加盐和哈希处理。

理想情况下,我想对它们进行加密,但我不确定执行此操作的最佳方法,尤其是在开源项目上。

我想这个问题的答案与存储支付信息和 PCI 合规性的答案类似,但我还想问为什么没有对此进行更多讨论?也许我错过了一些东西。


您只是想验证其他人提供的令牌吗?如果是这样,请将其视为密码。使用字节推导算法,例如基于密码的密钥派生函数 2 (PBKDF2) http://en.wikipedia.org/wiki/PBKDF2(也描述于RFC 2898 https://www.rfc-editor.org/rfc/rfc2898)进行 10,000 次迭代并存储前 20 个字节左右。当收到令牌时。它实际上是不可逆的。

您想将令牌出示给其他人进行身份验证吗?如果是这样,这就是一个挑战,因为如果您的应用程序可以解密或以其他方式访问令牌,那么攻击者也可以。想想 Shannon 的 Maxim,攻击者了解系统,尤其是对于开源项目。

在这种情况下,最好的方法是使用强大的算法(例如 AES256)加密令牌,使用强大的加密标准随机数生成器生成密钥,并将密钥安全地存储在与数据不同的位置,例如上例中数据库外部的受权限保护的文件。后者意味着 SQL 注入攻击不会泄露密钥。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

安全地存储访问令牌 的相关文章

  • openssl_crypt 中初始化向量的使用

    我看了一下this https stackoverflow com questions 1391132 two way encryption in php问题 并想为自己做 当我运行这段代码时 直接取自这个答案 https stackove
  • Android 中的字符串加密

    我正在使用代码进行加密和加密 它没有给出字符串结果 字节数组未转换为字符串 我几乎尝试了所有方法将字节数组转换为字符 但没有给出结果 public class EncryptionTest extends Activity EditText
  • php字符串是值类型吗?

    为什么php的string是值类型 每次将参数传递给函数时 每次进行赋值时 每次连接都会导致字符串被复制时 它都会被复制到各处 我的 NET 经验告诉我 它似乎效率低下 迫使我几乎在任何地方都使用引用 考虑以下替代方案 替代方案1 This
  • 解码 OAEP 填充时出错

    我的问题已经解决了一半 请帮助 我已使用数字签名的公钥成功加密了文本 但在解密时出现错误 解码 OAEP 填充时出错 我的代码如下 region Test Encryption public void a using var rsa new
  • 为什么我们必须在 OAuth 中“更改令牌凭据的临时凭据”?

    服务器不能只是将临时凭证 升级 为令牌凭证并保留相同的密钥和秘密吗 然后 客户端可以在收到服务器的回调 表明临时凭证已 升级 后立即开始进行经过身份验证的调用 当然 如果临时凭证尚未升级 即客户端不等待回调 则经过身份验证的调用将失败 所以
  • 在 MySQL 表中存储用户密码的最佳 PHP 哈希方法?

    我已经阅读 Stack Overflow 问题大约 15 分钟了 每一个问题似乎都与我之前读到的问题相矛盾 Bcrypt SHA1 MD5 等 我目前对我的密码进行 MD5 但我想让我的数据库在发生泄露时更加安全 我知道这个问题已经被问了一
  • 如何检测CSRF漏洞[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 给定一个网站 如何检测潜在的 CSRF 漏洞 提前致谢 这是一个CSRF https www owasp org index php
  • Java - 从配置文件加密/解密用户名和密码

    我们正忙于为客户开发 Java Web 服务 有两种可能的选择 将加密的用户名 密码存储在Web服务客户端上 从配置中读取 文件在客户端 解密并发送 将加密的用户名 密码存储在 Web 服务器上 从配置中读取 Web 服务器上的文件 解密并
  • 您如何评论 RFC?

    我有一些关于OAuth RFC 草案 https datatracker ietf org doc html draft hammer oauth 10 特别是关于它包含的一些错误 但我不确定可接受的制作方法是什么 底部有一个电子邮件地址
  • JavaScript 中的安全数据

    我必须为 Web 测试创建生成器 使用 HTML 和 JavaScript 测试必须离线和在线进行 正确答案和分数评估必须是生成的测试的一部分 最终用户的分数仅发送到服务器 无法在服务器上进行评估 并且服务器对问题一无所知 它只保存最终分数
  • AES 在汇编中的实现 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 大家好 我正在尝试构建一个代码来演示
  • 警告:您的 git 版本是 1.9.3。存在严重的安全漏洞

    我在部署到 Heroku 期间收到有关 git 1 9 3 严重安全漏洞的警告 我尝试通过 homebrew 更新 git 但发现 git 最初并不是通过 homebrew 安装的 然后我通过自制程序安装了它 brew update bre
  • 使用 AesManaged“填充无效且无法删除”

    我正在尝试使用 AesManaged 进行简单的加密 解密 但在尝试关闭解密流时不断出现异常 这里的字符串被正确加密和解 密 然后在 Console WriteLine 打印正确的字符串后 我收到 CryptographicExceptio
  • Java 9:AES-GCM 性能

    我进行了一个简单的测试来测量AES GCM https en wikipedia org wiki Galois Counter Mode表现在Java 9 通过在循环中加密字节缓冲区 结果有些令人困惑 本机 硬件 加速似乎有效 但并非总是
  • 防止隐藏的输入被更改

    这一直让我压力很大 我有一个隐藏的输入
  • IOS 上图像的加密/解密

    我们正在使用加密 解密和 UIIMAGE 如果我们加密和解密 UIIMAge 而不保存到 iphone 画廊中 它工作正常 但如果我们加密 保存到画廊中 将 加密的图像 加载到应用程序中 然后解密它效果不好 我们使用这个函数来加密 解密 保
  • 将 CCtray 与 Jenkins 结合使用,同时启用安全性(使用 HTTPS)

    我将 Jenkins 服务器配置为仅使用 HTTPS 并启用安全性 我也不喜欢任何未登录的人查看仪表板 即使它是空的 在这里 我禁用了 匿名 的 读取 访问权限 到目前为止 所有这些都完全符合我的喜好 但想要通过例如向远程客户端添加一些构建
  • AES 输出是否小于输入?

    我想加密一个字符串并将其嵌入到 URL 中 因此我想确保加密的输出不大于输入 AES 是可行的方法吗 不可能创建任何始终会创建比输入更小的输出的算法 但可以将任何输出反转回输入 如果您允许 不大于输入 那么基本上您只是在谈论同构算法alwa
  • 清理 html 字符串中的所有脚本

    HTML5 剪贴板很棒 但我正在寻找一种使其安全的方法 用户正在将文本 html 粘贴到我的网页中 这允许他们粘贴图像 表格等 我正在寻找一种方法 在将粘贴的内容添加到页面之前删除所有脚本 我需要删除
  • PHP - hash_pbkdf2 函数

    我正在尝试使用此 php 函数执行一个函数来哈希密码 http be php net manual en function hash pbkdf2 php http be php net manual en function hash pb

随机推荐