我有一个适用于基于MVC的平台的问题,但我想也适用于处理用户表单输入的任何基于Web的平台。
从用户输入中删除尾随/前导空格的最佳实践和理想阶段是什么?
我发现这可能发生在几个阶段:
这方面的最佳做法是什么,特别是在某个阶段或多个阶段进行此操作的专业人士/企业? )
答案 0 :(得分:1)
我认为这取决于应用程序的类型:
对于标准的网络应用程序,我会说你肯定想在提交之前的某个时间清理浏览器上的数据,以便你可以验证它(例如,如果它有一个领先的空间或者一个电子邮件将无法验证长度检查)。最好在不在可能的情况下将数据发送到服务器进行验证。
如果您正在编写API,尤其是公共API,我肯定会清理数据服务器端或返回错误。您无法信任客户端向您发送干净的数据。我可能会在验证之前在模型中执行此操作,这不应该自动执行。
如果错误数据可能导致安全问题(XSS或SQL注入),那么您希望在服务器和客户端上清除它。即使在Web应用程序上,也没有任何东西阻止恶意用户伪造来自Web浏览器的请求。如果数据中的空格不会破坏任何内容,那么这可能就没有必要了(如果有人恶意地为他们的博客标题添加了一个领先的空间,它可能看起来很奇怪,但它只会伤害他们)
答案 1 :(得分:0)
我认为这是一个非常基于意见的问题。这取决于正在实施的人员以及申请。
如果您在用户输入后不必立即清理,我会说避免#1
,因为它会在用户输入时让您感到困惑,而且它会对较慢/较小的设备产生性能影响。
#2
和#3
都非常相似,关于#3
的一个好处是,如果你在很多地方使用相同的属性,你的修剪逻辑将只存在于一个地方,但两者都将在你的服务器上运行,从客户端设备上取消了这一点。
#4
取决于您的DBMS可能非常容易或难以实施。
我会亲自选择#2
或#3
,但我的意见和其他人的意见完全不同于我。
如果你有一个正确的阶段,你肯定不需要做多次。