【问题标题】:Sanitize multiple whitespace/newlines on form input清理表单输入上的多个空格/换行符
【发布时间】:2023-03-09 16:35:04
【问题描述】:

我正在接受将在公共页面上呈现的字段中的用户输入(例如论坛上的帖子或网站上的 cmets)。我希望能够使用 CSS 属性将这些与用户的换行符一起呈现为段落

white-space: pre-line;

这允许用户以段落格式发布,就像您正在阅读的这篇文章一样。

但是,我不希望恶意用户能够提交包含大量空白的帖子,从而大大增加页面的长度。目前我正在尝试使用 正则表达式 清理输入,删除重复的空白字符(双空格或双换行符)。这有点复杂而且非常丑陋。我仍然希望用户能够提交包含空格的帖子。但是,编写正则表达式真的仍然是解决这个非常普遍的问题的最佳方法吗?

在 C#/ASP.NET 中清除用户输入中多余的空白字符是否有最佳实践,或者在 2015 年编写我们自己的正则表达式仍然是最佳选择?

【问题讨论】:

标签: c# asp.net regex asp.net-mvc


【解决方案1】:

如果恶意用户想要破坏您可以发布自己内容的网站,他们会的。如果他们不能使用过多的空格,他们会滥用标记使整个帖子变粗,或者他们只会发布几兆的 Lorem Ipsum。

没有“一条禁止所有的规则”,所以如果你想这样做,你只需将重复的空格合并为一个即可。

一种方法是使用现有的用户安全的 HTML 模板引擎,如 Markdown,而不是自己滚动。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-15
    • 2015-12-06
    • 2014-11-20
    • 2019-02-28
    • 2020-05-14
    • 1970-01-01
    相关资源
    最近更新 更多