【问题标题】:Hiding database attributes in the DOM在 DOM 中隐藏数据库属性
【发布时间】:2014-05-21 22:09:05
【问题描述】:

我正在创建一个简单的应用程序来学习一些 PHP 和 SQL。为了获取每个用户的帖子,我使用了一个名为 post_id 的键,它会自动递增并且也是主键/唯一键。目前,我收到了带有此post_id 的所有帖子。如果用户打开 DOM,他们将只能看到他们的帖子 ID(在 else 上没有),如下所示:

<ul>
    <li data-id="173">My first post!</li>
    <li data-id="174">My second post!</li>
    <li data-id="175">My third post!</li>
</ul>

这些数据 ID 可能会很快变得非常大,这是一个问题吗?是否值得我尝试重新格式化数据库,这样每个用户都会得到自己的一组更小的 ID:

<ul>
    <li data-id="4">My first post!</li>
    <li data-id="5">My second post!</li>
    <li data-id="6">My third post!</li>
</ul>

我认为这样做的好处是,如果有人查看源代码,它们的披露就会减少,从长远来看,也许我更容易编写代码?

或者这只是一个无关紧要的问题?我从来没有做过这样的事情,所以任何指导将不胜感激。

【问题讨论】:

  • 为什么这真的很重要?
  • 它可能看起来凌乱或过于暴露?我不确定我以前从未做过这样的事情
  • 这不是问题。
  • 这个数字的大小应该无关紧要。我有那个数字是 7-8 位的地方。不用担心。
  • @GhostGambler 是正确的,这没有理由成为问题。有许多其他服务就是这样做的,将它们的 id 暴露给构建 url。

标签: php html sql database dom


【解决方案1】:

对于从 DOM 获取 ID 并将其用于任何恶意目的的人,如果用户可以使用随机数访问他们不应该访问的内容,这将是一种不好的做法。您应该使用会话验证和用户登录来防止访问任意数量的帖子。

你提到的第二点,关于快速增长的数字,是一个更有趣的话题。一般来说,计算中的数字可能非常大。这取决于您在数据库中使用哪种类型的列来存储您的号码。

例如,如果您在 32 位系统上选择整数,并且整数是从 -2147483647 到 2147483647 之间的任意数字。这意味着您可以拥有 2147483647 个帖子,然后您的应用程序将无法拥有更多帖子。但这是一个非常大的数字。想象一下,您的网站上每秒有 10 个帖子(数量不少),这意味着一年内您将有 315576000 个帖子。将最大整数除以它,您将获得 6.8 年的寿命。

但是,如果您在 64 位系统上运行,或者您选择像“BIGINT”(或类似)这样的列类型,您的数字会大得多。 64 位系统的最大整数大小为 9223372036854775807(即每秒 10 个帖子的 29227102304.5 年)

【讨论】:

    猜你喜欢
    • 2019-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-22
    • 1970-01-01
    相关资源
    最近更新 更多