gpt4 book ai didi

sql - 对所有内容进行后端(数据库端)验证是否可行?

转载 作者:太空狗 更新时间:2023-10-30 01:42:30 25 4
gpt4 key购买 nike

对于后端验证,我的意思是,在触发器、检查、过程(插入、更新、删除)等期间。它们现在有多实用或必要,现在大多数这些验证都是在前端严格处理的。 多少后端验证对程序有益?后端验证是否应该忽略一些小事情?

例如:假设我们有一个年龄障碍的人来输入数据。这可以在后端使用触发器或在年龄列中检查来完成。它可以/也可以在前端完成。那么在前端对年龄有严格校验的情况下,还需要后端校验吗?

最佳答案

这是一个概念性的问题。一般来说,现代程序分为 3 层:

  1. 介绍
  2. 业务逻辑
  3. 数据库

通常,第 1 层可能选择验证现代应用程序中的所有输入,为用户提供有关可能问题的快速反馈(例如 JS 弹出窗口说 “这不是一个有效的电子邮件地址”)。

第 2 层始终 必须进行全面验证。它是通往后端的网关,可以检查复杂的关系约束。它确保没有损坏的数据可以以任何方式进入数据库,并根据应用程序的约束进行验证。这些限制通常比您可以在数据库中检查的内容更复杂(例如,荷兰的银行帐号必须是 3 到 7 个数字, 9 或 10,并匹配 check digit test ).

第 3 层可以进行验证。如果只有一个“客户端”,它本身并不是必需的,如果有更多(特别是如果同一数据库有“不太受信任”的用户),它肯定也应该在数据库中。如果应用程序是关键任务,还建议在数据库中使用触发器和约束进行全面验证,以双重防范业务逻辑中的错误。数据库的工作是确保其自身的完整性,而不是遵守特定的业务规则。

这个问题没有明确的答案,这取决于您的应用程序做什么以及它的重要性。在银行应用程序中 - 在所有 3 个级别上进行验证。在 Internet 论坛中 - 只检查需要的地方,并为额外的用户提供性能优势。

关于sql - 对所有内容进行后端(数据库端)验证是否可行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17039934/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com