问题标签 [password-storage]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1091 浏览

php - 这种ajax登录方法是否安全?

我正在使用 ajax php 和 MySql 构建登录表单。

我已经完成了相当多的研究,但我不喜欢在网上找到太多帖子,所以我构建了以下代码。

我的问题是,这是否安全?我没有使用任何散列,我不确定如何使用 ajax 来完成。所有的例子都非常感谢

索引.PHP

ajax.php

多谢

0 投票
1 回答
273 浏览

bcrypt - 将 bcrypt 应用于已经散列的密码是否存在加密缺点

想象一个场景,客户端应用程序正在向后端服务器发送密码,以便服务器可以在与存储的密码变体进行比较时验证用户输入的密码是否正确。

传输机制是HTTPS服务器向用户代理提供HSTS&HPKP和强加密密码,服务器在 SSL 实验室测试中得分为 A+。尽管如此,我们可能希望避免将原始用户提供的密码从用户代理发送到服务器。相反,也许我们会在客户端上经过多轮 SHA-256 之后发送一个哈希值。

在服务器端,为了存储密码,我们使用 bcrypt 进行大量轮次。

从密码学的角度来看,与直接在纯文本密码上相比,对已经 sha-256 散列值执行 bcrypt 有什么缺点吗?使用散列时输入文本的固定长度性质是否会以某种方式破坏算法的优势。

编辑:我不是在询问性能,例如计算、存储、发送或比较值所需的内存、CPU、存储要求或挂钟时间。我完全感兴趣的是在应用 bcrypt 之前应用哈希是否会在披露存储值的完整列表的情况下削弱 bcrypt 的强度。

0 投票
1 回答
316 浏览

encryption - 保存可解密密码

我知道有这样一百万次的问题,但我无法找到适合我需要的答案。

我正在为我的公司构建小型内部密码管理器,用于存储各种服务器的登录数据等。当新用户注册时,他的密码将以加盐/散列版本保存在数据库中,因此没有人可以访问它(对于那部分我认为这一切都可以,如果我错了,请纠正我)。

但是,当用户登录时,他可以使用其登录详细信息添加新服务器。

问题是,如何存储这些。

因为,在某些时候,我必须以纯文本形式向用户展示这个登录详细信息(这就是这个应用程序的重点)。我能想到的最好的方法是使用某种对称加密。想法是应用程序将使用对称加密加密登录详细信息并以这种方式将其保存到数据库中,然后当再次需要数据时将从数据库中提取数据,使用相同的密钥解密并呈现给用户(并且密钥应该在源中应用程序代码?)。

它可能是非对称加密,但如果公钥和私钥存储在相同的源代码中,那么它是相同的,那么使用它没有任何好处吗?

这似乎不太安全,但我想不出更好的办法。

有没有更好的方法来存储这个登录数据?

如果对您很重要,应用程序将使用 PHP,数据库使用 Oracle

0 投票
1 回答
81 浏览

passwords - 在源代码中加盐更安全吗?

在源代码中加盐更安全吗?如果数据库受到盐的影响,那么一切都会丢失..但是如果他们只有哈希,他们就无法用它做任何事情..如果盐在源代码中,您可以使用他们的用户ID或其他东西吗?有谁知道..</p>

0 投票
1 回答
271 浏览

javascript - 告诉浏览器为同一域下的每个路径分别存储不同的密码

我正在编写一个浏览器应用程序,该应用程序在同一域下具有多个登录表单,但路径不同。

domain.tld/foo/login domain.tld/bar/login domain.tld/bar/boo/login

目前所有表单元素看起来都一样,没有属性,只有一个简单的密码输入,所有路径的名称相同,还有一个提交按钮,我附加了一个提交监听器。调用侦听器时获取输入的密码并阻止默认提交行为。然后实际登录通过后台的 AJAX 请求进行。

HTML:

Javascript:

所有经过测试的浏览器(FF、FFM、C、CM、O、OM)都允许保存密码,这很好。遗憾的是,密码是按子域而不是按路径保存的,导致同一域下以前访问过的路径的密码被覆盖。

告诉浏览器分别保存每个 URL 路径的密码的最佳方法是什么?

0 投票
1 回答
599 浏览

java - 存储密码以传递给另一个服务

我编写了一个查询 Jira API 的应用程序,该 API 需要我通过基本身份验证(标头中的 base64)提供的身份验证。密码存储在代码中,现在必须停止,因为我想交出代码。

当用户因密码计划更改密码时,应用程序应提示用户输入新的 Jira 密码,安全保存,并通过基本身份验证将其传递给 Jira API。

最好的方法是什么?

通常情况下,我们会对其进行散列,但这是不可能的,因为散列是单向的,我们需要将真实密码传递给 Jira,而不是散列。

0 投票
1 回答
674 浏览

c# - 如何在 ASP.NET Core 中处理登录 SMTP 客户端的密码存储?

我目前正在开发一个 ASP.NET Core 应用程序,其中一部分是“EmailService”现在,它的唯一功能是通过发送信息性电子邮件。SMTP,但是使用客户端自己的凭据。而且我很不确定我应该如何处理这些凭据的存储,以启用 SMTP,它需要:

  • 服务器地址
  • 港口
  • 邮件地址
  • 密码

除了密码,我想可以安全地存储在数据库中,但是我该如何存储密码呢?

(数据库没有存储在同一台机器上,如果这有什么不同的话)

0 投票
0 回答
84 浏览

php - PHP 中的默认密码要求是否曾经更改,例如 password_needs_rehash() 会为默认选项返回 true?

我向客户推荐了他们的登录系统实现password_needs_rehash,这样当他们的 PHP 版本升级时,他们的 web 应用程序中的用户帐户将自动重新散列并重新保存密码。我这样做的原因是为了确保随着暴力破解密码变得更有能力,随着 CPU 速度越来越快,密码哈希需要升级。

我从 PHP 5.5 中引入 PHP 哈希工具的评估开始,从那时起我们已经有了五个主要版本,其中 7.4 即将发布。这些是否更改了默认散列算法或内部成本选项,以便在使用 rehash 测试函数时呈现“旧”散列将返回 true?

如果他们有,我可以获取一个旧的 PHP 副本,生成一个哈希,然后在我的 API 测试中使用它,以证明旧的哈希确实在更高版本的 PHP 中得到了升级。

看起来7.2 和 7.3 包含了新的哈希算法,但默认值没有更改,在此基础上,此方法将返回 false 。自添加这些功能以来,我还没有找到有关默认成本是否已更改的任何信息。

如果默认password_hash设置从未更改会导致重新散列,我可以cost根据password_hash文档页面上的计时脚本添加手动参数,但这需要我的非技术客户不太可能进行的手动干预他们自己。可以基于PHP升级自动吗?

0 投票
0 回答
504 浏览

unix - 无法在 pass 中插入新密码(标准的 unix 密码管理器)

我正在尝试插入新密码以通过 (passwordstore.org),但收到以下错误:

0 投票
1 回答
166 浏览

wordpress - 密码存储在 wordpress 数据库中表 wp_users 中

密码如何存储在wp_userswordpress 数据库的表中?我想知道用于在列中显示密码值的算法是什么user_pass