有没有办法通过网络持久存储(无论多小)客户端存储?

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,我可以检索和验证(通过使用从中发送给用户的密钥对其进行哈希处理)服务器).此验证将发送到服务器,而不是密钥.

Eev*_*vee 11

已经有一个基于浏览器的系统,它使用密钥来保护数据传输.它叫做SSL.


Qui*_*son 5

您可以使用几种不同的技巧来保持客户端的状态,您可以保留顶级框架并在那里存储javascript变量.

您可以使用Flash本地"SharedObject",

Silverlights的IsolatedStorage

或Google Gears中的equivelant.

但..

不要遵循这种思路.你需要SSL.你不打算建立一些安全的东西,你将构建一些射击你或者脚下使用你的app的人.