database - 防止错误数据输入

标签 database postgresql web-applications

将数据验证完全委托(delegate)给数据库引擎约束是否是一种好的做法?

验证来自应用程序的数据并不能防止来自另一个软件(可能由另一个团队用另一种语言编写)的无效插入。使用数据库约束可以减少需要担心无效输入数据的点。

如果将验证同时放在数据库和应用程序中,维护就会变得乏味,因为您必须为谁知道有多少应用程序更新代码,从而增加人为错误的可能性。

我只是没有看到很多人这样做,查看来自自由软件项目的代码。

最佳答案

在输入时验证。在将其放入数据库之前再次验证。并具有数据库约束以防止错误输入。尽管如此,您可以打赌,不良数据仍会进入您的数据库,因此在您使用它时再次验证它。

似乎每天都有一些网络应用程序遭到黑客攻击,因为他们使用 Javascript 以表单或更糟糕的方式进行所有验证,并且人们找到了绕过它的方法。你必须提防这种情况。

偏执狂?我?不,只是经历过。

关于database - 防止错误数据输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/88962/

相关文章:

mysql - Laravel 5.7 迁移拆分读写数据库时出现问题

java - PSQL异常 : A result was returned when none was expected

postgresql - Npgsql、TransactionScope 和准备好的事务

web-applications - 将 EJB 和接口(interface)拆分为单独的模块——部署失败

Azure 迁移网站主机名

database - 用于学习数据库设计和管理的 Firebird 示例数据库推荐

mysql - facebook 中的图表和 MYSQL 数据库之间的区别?

android - 升级 Android 时保留数据库中的表

sql - 如何将连接列添加到现有表?

ruby - 在 Sinatra(Ruby) 中,我应该如何创建在应用程序生命周期中只赋值一次的全局变量?