gpt4 book ai didi

validation - 深度防御与 DRY

转载 作者:行者123 更新时间:2023-12-04 02:12:59 29 4
gpt4 key购买 nike

“纵深防御”原则指出,应该在多个地方实现约束,这样如果一条数据绕过或漏过一层,就会在下一层被捕获。一个很好的例子是在网络应用程序中——你将验证放在客户端 javascript 中,放在服务器端代码中(PHP/Ruby/ASP/其他),然后你将这些规则放在数据库中(例如外键约束)。这样,任何通过 Javascript 验证的数据都会被服务器端捕获。任何通过服务器验证的数据都会受到数据库约束。

然而,这似乎违反了DRY(Don't Repeat Yourself)原则。在这里,您在三个地方重复了相同的验证规则。我知道有一些方法可以生成客户端 javascript,以便强制执行服务器端验证。我的问题是,如何整合数据库约束和服务器端代码?有什么方法可以生成自动执行数据库约束的代码吗?

最佳答案

我们通过使单个模块成为“安全规则”的所有者,然后为其创建一个 AJAX 接口(interface)来实现这一点,以便服务器端代码直接调用它,然后前端 UI 组件调用AJAX 接口(interface),但它们都在与同一个模块通信。以这种方式,访问规则只在一个地方(安全模块),您仍然在所有地方执行规则。这具有将规则保留在客户端可下载代码之外的额外优势。

关于validation - 深度防御与 DRY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5146990/

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