我之前从未编写过用户身份验证系统,对于这个项目我需要平衡安全性和效率(这意味着我不能花费数百个工时来处理安全性,但我需要保留密码和登录信息安全).
我正在使用带有快速框架和通行证的Node.js进行身份验证和会话.
到目前为止,我所做的研究显示了需要解决的三个问题.在今天之前,我几乎不知道如果这些问题存在任何常见的解决方案,并且几个小时的随机啄掉研究并不能让我对我找到的答案的完整性有信心.
问题:
不要将未加密的纯文本密码存储在数据库中(可能的答案:盐/哈希密码在服务器上并将哈希值存储在数据库中.)
不要通过非安全的http连接传递纯文本密码(可能的答案:A - 仅使用Https进行身份验证过程.之后使用http.B - 在登录页面向用户发送随机盐,哈希密码客户端,然后取消哈希并重新加密数据库存储.)
不要使用GPU加密方法,GPU每秒可以破解700,000,000个密码.(可能的答案:bcrypt)
这些只是我在3小时研究中发现的最明智的答案.我不知道这些是否足够,它们的弱点是什么,或者可能有哪些替代品.我还要感谢任何进一步的见解(另请注意:我甚至不确定 - https是否会在传输时充分保护密码?)
我正在开发一个程序有问题(你可以在www.energematrice6.com/gview2上看到它)
星系观察者在6个不同的层面上绘制星星.后面层工作正常(使用简单的笔划命令).前3个图层使用drawImage()功能获取保存的图像并将其绘制到画布(使用函数starGradDraw和starGradDraw2).
当程序首次执行并保存到对象变量(基本上只是缓冲区)时,这些图像由另一个函数创建.
一切都在我的家用电脑,笔记本电脑,我妻子的电脑,以及几乎所有其他机器上都可以正常测试(或者让朋友测试一下).
当我尝试在我的工作计算机上使用Firefox 10.0.2打开它时(我在家中使用的版本相同),前三层星星是空白的.我能想到的另一个不同之处是我的家用电脑都没有使用64位操作系统或特别是Windows 7.
其他一切似乎仍然在程序中正常工作,并且firebug没有弹出任何错误.它只是没有绘制图像(或暂停程序).我真的不确定下一步该尝试什么.
有任何想法吗?
(如果你愿意的话,我可以粘贴一些代码,但程序超过千行,我不确定问题出在哪里或者它只能在这台机器上出错.)