Contornando palavras vigiadas com substituições de caracteres confusos

Não tenho 100% de certeza se isso é um bug. Mas as palavras observadas não conseguem corresponder a posts com codificação estranha. Ou eu não consigo escrever a regex para fazer com que correspondam.

Fui atingido por muito spam ultimamente. As palavras observadas ajudaram inicialmente, mas agora eles estão postando em uma codificação estranha. O spam se parece com isto:

Eu estava filtrando por “helpline” - que está colado aqui:

𝐇𝐞𝐥𝐩𝐥𝐢𝐧𝐞

Mas se eu olhar para o que eles estão postando em ASCII, parece a tabela abaixo. É algum tipo de codificação estranha. MIME talvez?

Estou trabalhando no tópico relacionado a “Dicas para Prevenir Spam” e começando a restringir mais as coisas. Mas esse tipo de postagem é desafiador.

Isso não é um problema de codificação… o termo que você procura são caracteres Unicode Confusáveis.

Mesmo que fosse apenas a letra C, teríamos:

ℂ 𝕮 C 𝙲 𝑪 𝒞 𝖢 𐌂 𝗖 ꓚ Ꮯ 𐔜 С C Ⲥ 𝓒 Ⅽ ℭ 𝘊 𐐕 𝘾 🝌 𝐂 𑣲 𑣩 Ϲ 𐊢 𝐶

Isso provavelmente seria melhor apresentado como um pedido de recurso, algo como uma opção para “Substituir caracteres Unicode confusáveis antes de aplicar Palavras Observadas”.

Para sua informação, o conjunto de caracteres confusáveis é um dado público publicado pelo consórcio, por exemplo:

#	C	Ⅽ	C	ௐ	С	Ꮯ	Ⲥ	ꓚ	Ϲ	ℂ	ℭ	𝐂	𝐶	𝑪	𝒞	𝓒	𝕮	𝖢	𝗖	𝘊	𝘾	𝙲
	(‎ C ‎)	0043	 LATIN CAPITAL LETTER C
←	(‎ Ⅽ ‎)	216D	 ROMAN NUMERAL ONE HUNDRED
←	(‎ C ‎)	FF23	 FULLWIDTH LATIN CAPITAL LETTER C	# →С→
←	(‎ ௐ ‎)	0BD0	 TAMIL OM	# →С→
←	(‎ С ‎)	0421	 CYRILLIC CAPITAL LETTER ES
←	(‎ Ꮯ ‎)	13DF	 CHEROKEE LETTER TLI
←	(‎ Ⲥ ‎)	2CA4	 COPTIC CAPITAL LETTER SIMA	# →Ϲ→
←	(‎ ꓚ ‎)	A4DA	 LISU LETTER CA
←	(‎ Ϲ ‎)	03F9	 GREEK CAPITAL LUNATE SIGMA SYMBOL
←	(‎ ℂ ‎)	2102	 DOUBLE-STRUCK CAPITAL C
←	(‎ ℭ ‎)	212D	 BLACK-LETTER CAPITAL C
←	(‎ 𝐂 ‎)	1D402	 MATHEMATICAL BOLD CAPITAL C
←	(‎ 𝐶 ‎)	1D436	 MATHEMATICAL ITALIC CAPITAL C
←	(‎ 𝑪 ‎)	1D46A	 MATHEMATICAL BOLD ITALIC CAPITAL C
←	(‎ 𝒞 ‎)	1D49E	 MATHEMATICAL SCRIPT CAPITAL C
←	(‎ 𝓒 ‎)	1D4D2	 MATHEMATICAL BOLD SCRIPT CAPITAL C
←	(‎ 𝕮 ‎)	1D56E	 MATHEMATICAL BOLD FRAKTUR CAPITAL C
←	(‎ 𝖢 ‎)	1D5A2	 MATHEMATICAL SANS-SERIF CAPITAL C
←	(‎ 𝗖 ‎)	1D5D6	 MATHEMATICAL SANS-SERIF BOLD CAPITAL C
←	(‎ 𝘊 ‎)	1D60A	 MATHEMATICAL SANS-SERIF ITALIC CAPITAL C
←	(‎ 𝘾 ‎)	1D63E	 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL C
←	(‎ 𝙲 ‎)	1D672	 MATHEMATICAL MONOSPACE CAPITAL C

(hah, acabei de descobrir que o chromium implementa essa simplificação, ao tentar pesquisar por 𝑪 ele encontrou a maioria das instâncias confusáveis da letra C - tente aqui!)

Um exemplo de algoritmo usando esses dados é implementado em python aqui.

Na sua última captura de tela, @billgraziano, a primeira referência numérica codificada em ampersand que você postou ( \\u0026#119815; ) seria:

←	(‎ 𝐇 ‎)	1D407	 MATHEMATICAL BOLD CAPITAL H

(a ordem de 𝐇 é 119815 codificada em decimal ou 1D407 codificada em hexadecimal)

Portanto, uma regex completa e insensível a maiúsculas e minúsculas para “helpline” que você poderia usar seria:

[HHℋℌℍ𝐇𝐻𝑯𝓗𝕳𝖧𝗛𝘏𝙃𝙃Η𝚮𝛨𝜢𝝜𝞖ⲎНᎻᕼꓧ𐋏ⱧҢĦӉӇhhℎ𝐡𝒉𝒽𝓱𝔥𝕙𝖍𝗁𝗵𝗵𝚑𝚑һհᏂɦꚕᏲħℏћ][E⋿Eℰ𝐄𝐸𝑬𝓔𝔈𝔼𝕰𝖤𝗘𝘌𝙀𝙴Ε𝚬𝛦𝜠𝝚𝞔ЕⴹᎬꓰ𑢦𑢮𐊆Ɇe℮eℯⅇ𝐞𝑒𝒆𝓮𝔢𝕖𝖊𝖾𝗲𝘦𝙚𝚎ꬲеҽɇҿ][L𝈪Ⅼℒ𝐋𝐿𝑳𝓛𝔏𝕃𝕷𝖫𝗟𝘓𝙇𝙻ⳐᏞᒪꓡ𖼖𑢣𑢲𐐛𐔦ŁLjLJl‎\\|∣⏽│1‎۱𐌠‎𝟏𝟙𝟣𝟭𝟷IIⅠℐℑ𝐈𝐼𝑰𝓘𝕀𝕴𝖨𝗜𝘐𝙄𝙸Ɩlⅼℓ𝐥𝑙𝒍𝓁𝓵𝔩𝕝𝖑𝗅𝗹𝗹𝙡𝚕ǀΙ𝚰𝛪𝜤𝝞𝞘ⲒІӀ‎‎‎ⵏᛁꓲ𖼨𐊊𐌉‎‎łɭƗƚɫ‎‎‎ŀĿᒷ🄂⒈‎⒓㏫㋋㍤⒔㏬㍥⒕㏭㍦⒖㏮㍧⒗㏯㍨⒘㏰㍩⒙㏱㍪⒚㏲㍫ljIJ‖∥Ⅱǁ‎𐆙⒒Ⅲ𐆘㏪㋊㍣Ю⒑㏩㋉㍢ʪ₶ⅣⅨɮʫ㏠㋀㍙][PPℙ𝐏𝑃𝑷𝒫𝓟𝔓𝕻𝖯𝗣𝘗𝙋𝙿Ρ𝚸𝛲𝜬𝝦𝞠ⲢРᏢᑭꓑ𐊕ᒆp⍴pp𝑝𝒑𝓅𝓹𝔭𝕡𝖕𝗉𝗽𝗽𝙥𝚙ρϱ𝛒𝛠𝜌𝜚𝝆𝝔𝞀𝞎𝞺𝟈ⲣрƥᵽᑷ][L𝈪Ⅼℒ𝐋𝐿𝑳𝓛𝔏𝕃𝕷𝖫𝗟𝘓𝙇𝙻ⳐᏞᒪꓡ𖼖𑢣𑢲𐐛𐔦ŁLjLJl‎\\|∣⏽│1‎۱𐌠‎𝟏𝟙𝟣𝟭𝟷IIⅠℐℑ𝐈𝐼𝑰𝓘𝕀𝕴𝖨𝗜𝘐𝙄 आईआईƖlⅼℓ𝐥𝑙𝒍𝓁𝓵𝔩𝕝𝖑𝗅𝗹𝗹𝙡𝚕ǀΙ𝚰𝛪𝜤𝝞𝞘ⲒІӀ‎‎‎ⵏᛁꓲ𖼨𐊊𐌉‎‎łɭƗƚɫ‎‎‎ŀĿᒷ🄂⒈‎⒓㏫㋋㍤⒔㏬㍥⒕㏭㍦⒖㏮㍧⒗㏯㍨⒘㏰㍩⒙㏱㍪⒚㏲㍫ljIJ‖∥Ⅱǁ‎𐆙⒒Ⅲ𐆘㏪㋊㍣Ю⒑㏩㋉㍢ʪ₶ⅣⅨɮʫ㏠㋀㍙][Ii˛⍳iⅰℹⅈ𝐢𝑖𝒊𝒾𝓲𝔦𝕚𝖎𝗂ﻳ𝘪𝙞𝚒ı𝚤ɪɩιιͺ𝛊𝜄𝜾𝝸𝞲іꙇӏꭵᎥ𑣃⍸ɨᵻᵼⅱⅲijⅳⅸ][NNℕ𝐍𝑁𝑵𝒩𝓝𝔑𝕹𝖭𝗡𝘕𝙉𝙽Ν𝚴𝛮𝜨𝝢𝞜Ⲛꓠ𐔓𐆎ƝNjNJ№n𝐧𝑛𝒏𝓃𝓷𝔫𝕟𝖓𝗇𝗻𝗻𝙣𝙣ոռɳƞη𝛈𝜂𝜼𝝶𝞰ᵰnj][E⋿Eℰ𝐄𝐸𝑬𝓔𝔈𝔼𝕰𝖤𝗘𝘌𝙀𝙴Ε𝚬𝛦𝜠𝝚𝞔ЕⴹᎬꓰ𑢦𑢮𐊆Ɇe℮eℯⅇ𝐞𝑒𝒆𝓮𝔢𝕖𝖊𝖾𝗲𝘦𝙚𝚎ꬲеҽɇҿ]
6 curtidas

@supermathie você é incrivelmente prestativo! É isso.

Ativei expressões regulares em Palavras Observadas, fiz uma gambiarra e veremos como isso vai. Também estou trabalhando em algumas das outras dicas de bloqueio de spam.

Depois de anos com quase nenhum spam, alguém parece ter encontrado meus fóruns limpos :frowning:

2 curtidas