我被告知不应该在Web应用程序的HTML代码中直接使用数据库ID.

目前,我在表行ID(tableRow-454,其中454是数据库中的行ID)、表单中的隐藏字段或 Select 字段或URL中使用ID.(我指的不是在页面上直观地告诉人们他们是#.)

我得到的建议是使用一些数学来模糊用户的ID.我认为这只会让事情变得更复杂,增加不必要的复杂性.但是我可以看到一些很好的理由,使得从HTML中确定数据库ID变得更加困难.

您会混淆用户的ID吗?或者你在乎吗?

推荐答案

不,你只是在为自己做额外的工作.

只要您做了足够的测试,在这里或那里更改ID不会让用户访问他们不应该访问的内容,那么您就可以看到这些ID.

在某些情况下,隐藏它们或使用非序列号,或者可能不从零开始计数可能是有益的.例如,如果有人收到3号订单,他们可能会开始问问题...

Database相关问答推荐

触发器作为完整性的判断约束

网络分区恢复后副本的更新数据发生了什么

如何以编程方式将产品添加到 Opencart 数据库

优雅地处理 EJB/JPA 环境中的约束冲突?

Oracle SQL 开发人员中的 DB2 数据库

Select 正确的数据库:MySQL 与Everything 其它数据库

NOSQL 非规范化数据模型

无法使用命令行运行 liquibase

Android Room持久性库@Update不起作用

如何更改 Heroku 中的列类型?

跨不同数据库创建视图

PHP 和 MySQL Select 单个值

避免从网站数据库中data scraping数据抓取?

每个 Docker 容器一个或多个数据库

连接池策略效果怎样?

JavaScript 布尔搜索查询生成器接口库?

Fluent NHibernate 的类映射生成器

使用 liquibase 更新表中的一行

如何使用 T-SQL 检测 SQL Server 数据库的只读状态?

如何在 Java 中检测 SQL 表的存在?