我在将呈现在公共(public)页面上的字段中接受用户输入(例如,论坛上的帖子或网站上的评论)。我希望能够使用 CSS 属性将这些呈现为段落以及必要时用户的换行符
white-space: pre-line;
这允许用户以段落格式发帖,就像您正在阅读的这篇帖子一样。
但是,我不希望恶意用户能够提交带有大量空白的帖子,从而大大增加页面的长度。目前我正在尝试使用正则表达式 清理输入,删除重复的空白字符(双空格或双换行符)。这有点复杂而且非常丑陋。我仍然希望用户能够提交包含空格的帖子。但是编写正则表达式真的仍然是解决这个非常普遍的问题的最佳方法吗?
在 C#/ASP.NET 中是否有清理用户输入的多余空白字符的最佳实践,或者编写我们自己的正则表达式仍然是 2015 年的最佳选择?
最佳答案
如果恶意用户想要破坏您的站点以发布他们自己的内容,他们会的。如果他们不能使用过多的空格,他们就会滥用标记使整个帖子都变成粗体,或者他们只会发布几兆的 Lorem Ipsum。
没有“一个规则可以全部禁止”,所以如果您想这样做,您只需将重复的空格折叠成一个即可。
一种方法是使用现有的用户安全的 HTML 模板引擎,例如 Markdown,而不是自己开发。
关于c# - 清理表单输入中的多个空格/换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30029449/