我有一个问题适用于基于 MVC 的平台,但我想也适用于任何处理用户表单输入的基于 Web 的平台。
从用户输入中删除尾随/前导空格的最佳实践和理想阶段是什么?
我认为这可能会在几个阶段发生:
- 用户表单输入后立即 - ala Javascript 函数在输入/预提交时进行剥离
- 在 Controller 内部提交参数
- 中间模型/属性方法
- 数据库持久化之前或之后
这方面的最佳实践是什么,特别是在某个阶段或多个阶段这样做的优点/缺点?)
最佳答案
我认为这取决于应用程序的类型:
对于标准的网络应用程序,我想说您肯定希望在提交之前清理浏览器上的数据,以便您可以验证它(例如,如果电子邮件有前导空格或长度检查)。尽可能在不向服务器发送数据的情况下进行验证会更好。
如果您正在编写 API,尤其是公共(public) API,我肯定会清理数据服务器端或返回错误。您不能相信客户会向您发送干净的数据。我可能会在验证之前在模型中执行此操作,这应该不难自动执行。
如果不良数据可能导致安全问题(XSS 或 SQL 注入(inject)),那么您需要在服务器和客户端上清除它。即使在网络应用程序上,也无法阻止恶意用户伪造来自网络浏览器的请求。如果数据中的空格不会破坏任何内容,那么这可能没有必要(如果有人“恶意”在他们的博客标题中添加前导空格,这可能看起来很奇怪,但这只会伤害他们)
关于javascript - 何时清除用户输入中的尾随/前导空格 - 输入时或数据库插入之前?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42730684/