首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >OOP安全性/验证是在方法内部还是外部?

OOP安全性/验证是在方法内部还是外部?
EN

Stack Overflow用户
提问于 2011-04-24 08:12:55
回答 2查看 400关注 0票数 0

我有一个用于将数据插入数据库的类,传递给这个类的方法的信息必须进行转义和验证。验证和转义数据的最佳实践是什么?它应该在方法的实现中完成,还是应该在使用该类的脚本文件中完成,以便在移到类上之前信息是有效的和安全的?我过去用过这两种方法,我一直想知道大多数人是用哪种方法做的。(如果重要的话,我会用PHP编写代码,但对我来说,这似乎更像是一个一般的编程实践问题。)

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-24 08:26:02

这在某种程度上取决于您的数据处理架构的类型,但是...

通常,将数据插入数据库的类(让我们称它们为持久性类)应该执行SQL转义。如果值必须是特定类型(例如,VARCHAR,INT),它也可以验证这些,或者让数据库为不正确的数据类型抛出一个错误。

对于更具体的验证,将其包含在域模型或处理直接输入的其他代码中可能是一个好主意(例如,GET和POST)。

如果您使用域模型对象,它们应该包含一个可用于确保它们有效的方法,或者根据模型的要求,它们不应该接受无效的数据。然后,持久化类可以简单地处理域对象,或者通过域对象的存储库。

在一个更简单的场景中,您只有一个具有较少独立层的脚本,数据验证可能应该在脚本将数据移交给持久性类之前完成。(如果您很好奇,在PoEAA中这可能是最接近事务脚本模式的)

票数 0
EN

Stack Overflow用户

发布于 2011-04-24 08:21:41

我认为在将数据传递给持久性方法之前,应该对其进行验证。

转义应该是持久性方法实现的一部分,使用准备好的语句。

身份验证和授权的安全问题是交叉关注点。如果你的语言支持它们,它们就属于方面。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5767821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档