![]() |
1
7
你考虑过吗 不 在数据到达数据访问层之前对数据进行转义?我问,因为他们对你的团队所采取的方法很在行:
还有另一种方法:让需要的任何一个层都能将数据转义出来。数据总是以原始的、未捕获的形式在层之间传递。所以数据访问层执行所有数据库转义。HTML输出代码执行所有HTML转义。当您决定要生成PDF时,您的PDF代码将执行所有PDF转义。
|
![]() |
2
7
如果不知道输入是否已被转义,则无法添加要转义或不转义的自动决策。你可以尝试分析它,但它永远不会是好的,你会遇到双反斜杠对等等。 一旦发送到访问层的数据应该是干净的,并在一个地方处理转义,就做出决定。如果这样做,其他开发人员就不必担心它(他们可能无论如何都不想担心),而且将来迁移到另一个数据库会更容易。它还可以让你随时自由地转移到准备好的声明上。 编辑: 忘了这个:
我认为让他们自己发现它是值得的,如果您只是非常清楚地表明转义是属于数据库层的,不应该在其他地方进行的话。 |
![]() |
3
0
如果我处在你的位置,我就不会懒得不去审查每个人的代码。即使您没有审查用户输入的转义,您仍然可能想看看他们的代码是否有效地完成了。或者,也许不是你来做复习,而是有人来做。 不久前,我经历了一个几乎相似的设置,我们将任务按层划分。一个处理模型,我处理控制器,另一个处理视图。因为我们非常信任每个人,以至于其他人的代码都会按照我们期望的方式工作,所以我们在需要合并它们之前,没有费心检查其他人的代码。在开发后期,我们发现模型中的代码效率低下。它不仅效率低下,而且不起作用!正因为如此,我们不得不彻底检查大量的代码,这会花费我们更多的时间。 我建议您创建一个技术需求规范文档,其中指定了来自用户的可接受输入。此文档后面应该是那些将对接受用户输入的部分进行编码的部分。更好的是,创建单元测试来查看这些需求是否被严格遵守,这样就不必担心它们传递给您的数据是否无效。 另一件事…既然您使用的是PHP,为什么不使用一个好的框架呢?大多数可用的框架都有自己的DAL,您不再需要为转义数据库输入担心太多(好吧,没那么多)。框架应该为您做到这一点。 此外,您可能还需要查看“准备好的语句”。 |
![]() |
Jacco · 未能格式化我的日期以在php中正确工作 1 年前 |
![]() |
jay ram · 如何在URL核心php中从API获取JSON? 1 年前 |
|
Ishwarya A · php电子表格在浏览器中显示多张excel 1 年前 |