我正在为我的学校做一些初步调查(我作为学生在IT部门工作)。这里的学生必须每6个月更改一次密码,其中许多人都很难实施强制执行的(许多)密码规则。也就是说,他们经常不得不多次尝试设置新密码。
规则是:
我有几个问题:
请注意,我不是网络开发人员。此外,请留下任何诙谐的评论,例如“更改密码政策”或“他们只是愚蠢的用户”。
答案 0 :(得分:5)
是否可以创建基于Web的密码检查程序,在用户输入新密码时提供实时反馈?我正在想象一个网页一侧的清单,其中绿色复选标记被激活,因为密码符合更多标准。
是
是否可以安全地执行此检查
当指示灯变为绿色时,它会显示有关满足要求的密码位置的信息。这会将有关密码的数据泄漏给任何可以看到屏幕的人。
完全是客户端?
是
从哪里开始这样的任务?
HTML文档中的规则列表,每个规则旁边都有一个FAIL图像。 JS中规则的程序版本。然后在密码输入上的每个按键事件的循环中依次测试每个规则,并根据是否遵循规则交换PASS和FAIL图像。
您需要使用XMLHttpRequest对象访问服务器,以检查之前是否使用过密码。确保你只存储哈希和盐渍密码。
请注意,我不是网络开发人员。
然后我建议你得到一个或成为一个。
此外,请留下任何诙谐的评论,例如"更改密码政策"
很好,把机智放在一边,坚持严肃的问题:
如果人们在提出符合策略的密码时遇到问题,那么他们就会在记住这些密码时遇到问题。这将导致人们不得不重新设置(IT部门需要更多工作)以及将其写下来的人员(这可能会比使用更容易猜测/暴力的密码更不安全)。 / p>
答案 1 :(得分:2)
您指定的大部分规则都可以使用javascript实时检查,更具体地说是使用正则表达式。之前检查密码是否已在服务器端进行,以确保安全。
答案 2 :(得分:1)
是否可以创建基于Web的密码检查程序,在用户输入新密码时提供实时反馈?我正在想象一个网页一侧的清单,其中绿色复选标记被激活,因为密码符合更多标准。
是的,但你需要知道一些javascript才能做到。
是否可以安全地完全执行此检查并完全在客户端执行?
不,是的,或者是,不是,但不是两者兼而有之。您可以完全在客户端进行检查(除了检查以前需要数据库访问的密码)。但是,在客户端,没有任何东西是永远安全的。您在客户端执行的任何操作都应视为对用户的帮助。必须始终在服务器上进行所有验证。
我不想成为一个聪明的人并告诉你更改密码策略,这样做是因为验证会“难以做”将是一个糟糕的选择,但我想推荐以下文章对决定密码策略的人:http://www.baekdal.com/tips/password-security-usability
答案 3 :(得分:1)
答案 4 :(得分:0)
Regexp可能就是你想要开始的地方。如果您对Web开发中的regexp不熟悉,我建议您从这里开始:http://www.w3schools.com/jsref/jsref_obj_regexp.asp。如果你真的没有网络开发的经验,我就不得不问你是如何陷入工作的,你必须学习一门新语言来完成一项相对简单的任务。你肯定需要了解javascript来做所有客户端这样的事情。哦,我不建议测试
不得与
之前使用的任何密码匹配
以客户端的简单方式执行此操作风险太大,并且在没有从外部库提供帮助的情况下安全地执行此操作太危险了。希望这有帮助并祝你好运!