php - 公开表行ID不安全吗?

标签 php sql database

所以在我的网站上,我有文章。文章可以被赞成或反对。

在一篇文章的URL中,你可以很清楚地看到它的ID。例如:

www.website.com/articles/14/this_is_the_article_title

当您想对文章投赞成票/反对票时,发布请求也会使用文章的 ID,无需任何编码。

这是不好的做法还是不安全?如果是这样,最好的选择是什么?

最佳答案

我不会说它不安全。许多网站在 URL 中使用 ID。在 GET 或 POST 请求中,但它也用作路径变量。

如果您认为网络抓取您的网站不安全,您可以这样调用它,因为用户可以编写一个范围从 0 到最后一个用户/帖子/产品 ID 的机器人并抓取数据。但是如果你使用随机 id,你可以避免这种情况。因此,例如,您对表中的每一行使用不同的六位数字 ID。您可以生成随机的六位数代码,而不是按升序排列您的 ID,如果它不在数据库中,则将其提供给行。

所以行不是这样的:

ID    NAME
0     [username]
1     [username]
2     [username]

你可以像这样构建它们:

ID      NAME
421456  [username]
197635  [username]
486597  [username]

关于php - 公开表行ID不安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56859301/

相关文章:

PHP 数字 : convert 1. 4E-N (N >40) 到十进制,删除无用的零数字

sql - 创建具有日期/时间范围约束的表以防止重叠

mysql - IF语句与INSERT INTO,mysql语法

python - 如何为整个 Tornado Web 应用程序建立与 SQLite 数据库的一个连接?

sql-server - 检索附加了多个标签的项目

php - Codeigniter 在电子邮件类中使用关联数组

php - Wordpress the_permalink 性能与将值存储在变量中

php - 根据 PHP 字符串查询更改 CSS

mysql - 如何检查更新后值是否已更改?

android - 为两个 Android 应用程序共享相同的 SQLite 数据库