Discourse 论坛的用户可以通过将表情符号紧贴在其前面的单词之前,绕过我们的“标题中最大表情符号数量”限制。
示例:This is:emoji: an emoji:emoji: bypassing:emoji: title
用户绕过我们的限制:

我们已在本地确认,标题中的表情符号限制当前设置为 0,而上述示例中的用户使用了 3 个表情符号。
如果需要更多信息,请告知。谢谢!
Discourse 论坛的用户可以通过将表情符号紧贴在其前面的单词之前,绕过我们的“标题中最大表情符号数量”限制。
示例:This is:emoji: an emoji:emoji: bypassing:emoji: title
用户绕过我们的限制:

我们已在本地确认,标题中的表情符号限制当前设置为 0,而上述示例中的用户使用了 3 个表情符号。
如果需要更多信息,请告知。谢谢!
如果这是一个简单的修复,我支持 @sam;如果不是,那就不行。
如果对此问题进行调查,值得提及的是:当表情符号后面没有空格时,它们在标题中实际上根本不会渲染。
表情符号与文字之间有空格:
![]()
表情符号与文字之间没有空格:
![]()
需要说明的是,这种情况适用于任何位置的表情符号,而不仅限于标题开头。
有一个例外情况,即当连续出现多个表情符号(中间无空格)时:
![]()
因此,表情符号似乎需要在其后跟随一个空格才能正常渲染,除非其后紧跟的是另一个表情符号。此外,如果表情符号前没有空格,实际上会绕过标题中表情符号数量的上限。
这里也有类似的问题。我们将标题中允许的 emoji 数量设置为 0。
不知为何,有一位用户总能绕过这个限制,而我无法复现他是如何做到的:

出于纯粹的好奇,我刚刚在 try.discourse.org 上快速尝试复现该问题(该站点标题限制为 1 个表情符号),我发现如果像上面那样不留空格,使用手机相册中的表情符号,可以勉强塞进两个。
不知为何,它似乎对第一个表情符号的处理方式与第二个不同。
不过,我恐怕没有技术上的解决方案。或者,您可以打开原帖(OP),将标题中的表情符号剪掉,并添加一条编辑说明,请用户停止规避论坛规则?(或者发送一条具有相同目的的私信?)
好吧,当然我们的版主可以做到这一点,但将表情符号数量设置为 0 难道不应该实现其应有的功能吗?
另外,从图片中看不出来,但这些用户发布的标题中,最后一个单词和那个表情符号之间有一个空格。
不过,我自己无法复现他是如何绕过过滤器的。
我还没试过发帖确认,但乍一看,它似乎是将一个 Unicode 表情符号字符与一个表情符号名称组合在一起:Emoji title emoji title🥳:partying_face:
我最初漏掉了您之前关于标题中星号和云朵的留言。我无法通过空格复现该问题,但我可以复现 OP 描述的问题,即只要表情符号紧跟在字母数字(也可能是其他非空白字符或非表情符号字符)之后,就可以使用任意数量的表情符号。
我没能找到具体的例子,但您提到的那位用户或许使用了某个看似空格但实际上不被视为空白字符的字符,从而允许在其后跟随表情符号。
完全正确,如果可行的话。
不过,我更倾向于将这些限制视为一种轻微的摩擦,以鼓励用户遵守论坛偏好,而非绝对的锁定。总会有人找到方法绕过某些限制,而要把所有漏洞都堵上可能会像打地鼠一样费劲(尤其是当你无法弄清楚他们是如何做到的时候)。
有时,一点人工 moderation 也能达到类似的效果,或者至少争取一些时间来寻找更好的技术解决方案。如果只有一人在规避限制,你只需编辑标题并提醒其今后注意,那么人工处理可能比追查并修复漏洞更为简单。
但希望你能找到解决办法。我也很好奇他们现在是如何做到的。![]()
也许吧。他刚发布了三个新话题,每个话题末尾都带有一个表情符号。这次,表情符号与最后一个单词的最后一个字符之间不再有空格或其他任何字符。
此问题已在此拉取请求中修复:
该问题是由于查找代码中的一个问题导致某些表情符号未被检测为表情符号。