在DOM中隐藏数据库属性


Hiding database attributes in the DOM

我正在创建一个简单的应用程序来学习一些PHP和SQL。为了获取每个用户的帖子,我使用一个名为post_id的键,该键自动递增,也是主键/唯一键。目前,我得到了这个post_id的每一个帖子。如果用户要打开DOM,他们将只能看到自己的post ID(不能看到其他人的),如下所示:

<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>
我认为这样做的好处是,如果有人查看源代码,它们将不那么暴露,也许从长远来看,我更容易编写代码?

或者这根本不是问题?我从来没有做过这样的事情,所以任何指导都会非常感激。

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

你提到的第二点,关于人口快速增长,是一个更有趣的话题。一般来说,计算中的数字通常会相当大。这取决于您在数据库中使用什么类型的列来存储您的号码。

例如,如果在32位系统上选择integer,则integer是-2147483647到2147483647之间的任意数字。这意味着您可以拥有2147483647个帖子,然后您的应用程序就不能再拥有更多帖子了。但这是一个很大的数字。想象一下,你的网站上每秒有10个帖子(这是相当多的),这意味着在一年内你将有315576000个帖子。用最大整数除以它,就得到6.8年的寿命。

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