繁体   English   中英

将相同的数据库用于客户端哈希,盐和设置是否会暴露客户端哈希?

[英]Will using the same database for client hashes, salts, and settings expose client hashes?

如果我的Web服务器上有一个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>

然后,我用哈希和盐登录,检索SID,然后通过PHP重定向到主页;

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

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

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

PS:除非您有很好的理由,否则我确实非常不想使用SQL。 我更喜欢能够读取我的数据库,并且我喜欢XML的真实性和多功能性。

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

W3C说:

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

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

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

如果您有与SQL *选择器等效的请求,则可能会有问题。 您可能希望将关键数据放入另一个数据库文件中,并将访问封装在专用于用户注册和登录的界面中,以确保没有其他代码能够(甚至是错误地)从您的主代码中获取它们。 D B。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM