【发布时间】:2011-04-07 07:47:55
【问题描述】:
我最近一直在想。假设我们正在使用 JSF+Spring+JPA/Hibernate(或任何其他技术)做一个 webapp,并假设我们有一个“用户”实体。我们希望用户拥有唯一的登录名。如果我们想这样做,那么我们可以在“登录”列上放置一个@UniqueConstraint,但是我们的应用程序仍然必须在用户注册期间检查用户输入是否有效(唯一),没有那个并且只有 DB 约束我们只会得到一个错误。这让我想到,数据库约束真的有必要/有用吗?我能想到的唯一两次他们会给我们带来任何好处的时候是有人试图破解我们(但我想我们的应用程序无论如何都应该是 SQL 注入证明)或者我们尝试手动更改数据库内容(这不应该真的发生了)。实际上,现在我考虑一下,数据库约束通常是必要的/良好的做法吗?比如字符串的长度等。
【问题讨论】:
-
是否有人真的认为在假设攻击必须通过特定的不同向量 1st 的情况下让一个攻击向量完全开放是可以的?还是有人写这篇文章是为了挑衅和激发讨论?
标签: database database-design constraints unique-constraint