如果我的网络服务器上有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会话变量用于存储有关用户会话的信息或更改用户会话的设置。会话变量包含有关单个用户的信息,并且可用于一个应用程序中的所有页面。”
比在地址栏中公开各种数据要好得多。 =)
答案 0 :(得分:1)
只要您的数据库文件无法通过HTTP(即由.htaccess或等效的锁定)和其他协议(即不能坐在匿名FTP可访问的目录中),唯一的风险就是(无意中)让哈希和放大器;盐被收集在一堆其他用户相关数据中并发送给您的客户。
如果您的请求等同于SQL *选择器,那可能会有些问题。您可能希望将关键数据放入不同的DB文件中,并将访问封装在专用于用户注册和登录的界面中,以确保其他任何代码都无法从主数据库中获取(即使是错误的) DB。