将客户端哈希,salt和设置使用相同的数据库公开客户端哈希?

时间:2014-01-09 21:25:22

标签: javascript php html xml hash

如果我的网络服务器上有XML数据库;

<Database>
    <Client sid="0123456789abcdefg" name="John Doe" email="johndoe@mail.com" hash="9876543210abcdefg" salt="abcdefg9876543210">
        <Setting>A Setting</Setting>
        <Setting>Another Setting</Setting>
    </Client>
    ...
</Database>

我使用hash和salt登录,检索SID,然后通过PHP重定向到主页;

header("Location: home.html?sid=" . $sid);

然后通过JavaScript在位置栏中使用SID从相同的数据库中检索用户设置,我是否会公开客户端的哈希值?

在网络上设置和获取用户设置是否有更好的方法或更标准的方法?

P.S。:除非你有充分的理由,否则我真的,真的,真的,不想使用SQL。我更喜欢能够阅读我的数据库,我喜欢XML的有形性和多功能性。

编辑:经过一番研究,我了解到PHP支持一个存储SESSION []变量的系统。这对我来说是完美的,因为我实际上是在使用会话!

W3C说:

“PHP会话变量用于存储有关用户会话的信息或更改用户会话的设置。会话变量包含有关单个用户的信息,并且可用于一个应用程序中的所有页面。”

比在地址栏中公开各种数据要好得多。 =)

1 个答案:

答案 0 :(得分:1)

只要您的数据库文件无法通过HTTP(即由.htaccess或等效的锁定)和其他协议(即不能坐在匿名FTP可访问的目录中),唯一的风险就是(无意中)让哈希和放大器;盐被收集在一堆其他用户相关数据中并发送给您的客户。

如果您的请求等同于SQL *选择器,那可能会有些问题。您可能希望将关键数据放入不同的DB文件中,并将访问封装在专用于用户注册和登录的界面中,以确保其他任何代码都无法从主数据库中获取(即使是错误的) DB。