0

我有一个问题适用于基于MVC的平台,但我想也适用于处理用户表单输入的任何基于Web的平台。何时清除用户输入中的尾部/前导空白 - 输入时或插入数据库之前?

什么是最佳实践,以及从用户输入中删除尾随/领先空白的理想阶段?

我看不出这事在几个阶段发生:

  1. 立即根据用户的表单输入 - ALA的Javascript功能来剥夺他们在PARAMS提交内置控制器输入/预提交
  2. 中间模型/属性方法
  3. 之前邻在数据库持久

什么是这方面的最佳实践,以及R特别亲的/ CON对在某一个阶段,或者多干什么呢?

回答

1

我认为这取决于应用程序的类型:

  • 对于一个标准的Web应用程序,我会说,你一定要在提交前一段时间清理浏览器上的数据,以便您可以验证它(为例如,如果电子邮件具有前导空间或长度检查,则电子邮件将无法通过验证)。如果可能,最好在不向服务器发送数据的情况下进行验证。

  • 如果你正在编写一个API,尤其是公共的API,我肯定会清理数据服务器端或返回一个错误。你不能相信客户向你发送干净的数据。我可能会在验证之前在模型中做到这一点,但不应该很难自动完成。

  • 如果错误的数据可能导致安全问题(XSS或SQL注入),那么您想要在服务器和客户端上清除它。即使在网络应用程序中,也没有任何东西阻止恶意用户伪造网络浏览器的请求。如果数据空间不会破坏任何东西,那么这可能是不必要的(如果有人“恶意”添加到他们的博客标题前导空格它可能看起来奇怪,但它只会伤害他们)

0

这是一个非常基于意见的问题,我认为。这取决于正在执行的人员以及应用程序。 如果您不必在用户输入后立即清理干净,我会说避免#1,因为用户在输入时会让用户感到困惑,并且它可能会对较慢/较小的设备产生性能影响。 #2#3都会非常相似,关于#3的一个好处是,如果您在许多地方使用相同的属性,您的修剪逻辑将只存在于一个地方,但两者都会在您的服务器上运行,来自客户端设备的打击。

#4取决于您的DBMS可能非常容易或难以实现。

我会亲自选择#2#3,但这也是我的看法,而其他人可能会有与我完全不同的人。

另外,如果您获得了一个舞台的权利,您肯定不需要再做多次。

+0

谢谢为该职位。我不希望这是基于意见的,这就是为什么我特别询问每个阶段的专业/客户是如何保持客观的,并允许任何人根据自己的优先顺序进行公正的评估。这就是说,你提出了一些好点,谢谢! – nickj

相关问题