Bre*_*ugh 1 javascript php security persistent content-management-system
用户登录到HTML表单.使用JavaScript,他们的密码在本地进行哈希处理(也是盐渍的).服务器知道密码+盐应该是什么,用户已经注册,blahblahblah.现在用户请求页面.服务器向用户发送随机ID.当用户加载下一页时,该随机ID将附加到它们本地存储的密钥,它被散列,然后发送到服务器.服务器知道它们的密钥是什么,随机ID,执行相同的散列,并进行比较.如果他们匹配,恭喜,它来自正确的计算机.如果没有,那么有人一直在嗅探您的TCP/IP流量.
所有这一切显然没有 SSL,否则这将是非常多余的.
我的问题 - 我如何在客户端PC上存储密钥?
你好;
我正在开发一个PHP内容管理系统,并提出了一个安全的登录系统.唯一的问题是它需要某种形式的客户端存储(对于一个非常小的密钥,长度为40个字符) - 否则用户必须在每个页面加载时输入他们的密码.
有没有办法,使用PHP或JavaScript,我可以在客户端的PC上存储一个小的40个字符的字符串,以后再检索它?
编辑:COOKIES不是一个选项.这个40个字符的字符串不能离开客户端的计算机,所有设置的cookie都随每个HTTP标头一起发送.
我重复 - COOKIES是不安全的,而不是一个可行的选择.
让我像这样重做 - 客户端提交一个HTTP表单.使用某种脚本语言(例如JavaScript),密码将从表单中删除,不会发送到服务器,加密,并保留CLIENT-SIDE,我可以检索和验证(通过使用从中发送给用户的密钥对其进行哈希处理)服务器).此验证将发送到服务器,而不是密钥.
您可以使用几种不同的技巧来保持客户端的状态,您可以保留顶级框架并在那里存储javascript变量.
您可以使用Flash本地"SharedObject",
Silverlights的IsolatedStorage
或Google Gears中的equivelant.
但..
不要遵循这种思路.你需要SSL.你不打算建立一些安全的东西,你将构建一些射击你或者脚下使用你的app的人.
| 归档时间: |
|
| 查看次数: |
359 次 |
| 最近记录: |