【问题标题】:Are there any demerit if I use JSON as the storage mechanism, for storing ID/password information? [closed]如果我使用 JSON 作为存储机制来存储 ID/密码信息,有什么缺点吗? [关闭]
【发布时间】:2009-06-10 12:58:51
【问题描述】:

我要求PHP登录系统,我得到了答案,

  1. 大量文件策略
    * aaa.txt(内容是aaa-pass)
    * bbb.txt(内容为 bbb-pass)
    * 和 scandir。
  2. XML
  3. CSV
  4. MySQL
  5. SQLite
  6. 梨::授权

但是没有人提到 JSON。
但我觉得 JSON 对我来说是最好的方式。
因为看起来很简单,而且 PHP 有 JSON 专用的内置函数。
所以我正在考虑为我的登录系统选择 JSON,
但我想确认有什么缺点
如果我使用 JSON 作为我的登录脚本。

有人有意见吗?

【问题讨论】:

  • JSON 是一种数据传输格式。将其称为登录系统没有意义,而不是说“我的银行安全系统是木头”。当然,JSON 可能是您的登录系统的一个组件(虽然我个人不明白为什么),但它 /not/ 是一个登录系统。
  • 我的意思是ID/密码存储格式。

标签: php json login


【解决方案1】:

JSON 与任何其他纯文本格式一样好。请确保不要以纯文本形式存储密码。仅以散列形式保存它们。并且记住在散列时使用salt。并且,只要有可能,请尝试将此文件保留在文档根目录之外,或者至少通过服务器配置拒绝对其进行访问。

【讨论】:

    【解决方案2】:

    我肯定会给你一大堆缺点,主要有两个原因:

    1) 永远不要相信客户端上发生的任何事情,尤其是在客户端上执行的代码,例如 javascript。更简单的说,用户可以轻松修改你的认证码,有效地让你的认证失效。

    2) 您的用户数据库可以直接通过 http 访问并且是纯文本的,并且很可能很容易从您的脚本源或使用 HTTP 调试器中发现。因此,在他们最终成为管理员后,他们也将拥有您所有的用户名和密码。

    如果您需要登录系统,请构建登录系统。或者至少使用您的 Web 服务器支持的任何 http 身份验证方法。

    【讨论】:

    • 公平地说,没有人提到客户端(我假设 php可以在服务器上做JSON);并且大多数服务器都提供了拒绝访问某些文件的机制。
    • 没错,但是如果您拒绝访问您的序列化 JSON 密码数据库,那么您的 ajax 脚本将无法读取它,从而破坏了存储所述密码数据库的目的。
    • 我假设 OP 只是在谈论使用 JSON 作为服务器上的存储机制(与平面文件、xml 等相同),而且绝不会客户端尝试加载它,AJAX 或其他方式。
    • @Jonathan itou - 是的,你是原始海报
    猜你喜欢
    • 2012-07-31
    • 1970-01-01
    • 1970-01-01
    • 2016-02-22
    • 2014-05-05
    • 2013-02-07
    • 1970-01-01
    • 2012-02-01
    • 2012-12-10
    相关资源
    最近更新 更多