Expanded username blacklist: nazi terms, racial slurs, extremist codes (1488, 88), more profanity variations

This commit is contained in:
Georgiy Syralev
2026-01-01 17:12:57 +03:00
parent fc194dd582
commit c294710208

View File

@@ -5,34 +5,100 @@
// Profanity and inappropriate words (Russian) // Profanity and inappropriate words (Russian)
const RUSSIAN_BLACKLIST = [ const RUSSIAN_BLACKLIST = [
'хуй', 'хуя', 'хуи', 'хуе', 'хую', 'xyй', 'xуй', 'хyй', 'xyи', 'xуи', 'хyи', // Мат - основные слова
'пизд', 'пизда', 'пиздец', 'пизды', 'пизде', 'пиздой', 'piзд', 'пiзд', 'хуй', 'хуя', 'хуи', 'хуе', 'хую', 'хуем', 'хуев', 'хуйня', 'хуёвый', 'хуёво',
'ебал', 'ебать', 'ебет', 'ебут', 'ебал', 'ебала', 'ебало', 'еба', 'xyй', 'xуй', 'х', 'xyи', 'xуи', 'х', 'хyйня', 'хyево',
'бля', 'блять', 'блядь', 'бляд', 'блять', 'блят', 'блядина', 'блядский', 'пизд', 'пизда', 'пиздец', 'пизды', 'пизде', 'пиздой', 'пиздюк', 'пиздёж',
'сука', 'суки', 'суку', 'сукой', 'cyка', 'cука', 'са', 'piзд', 'пiзд', 'пiзда', 'пизд0ц',
'гандон', 'гондон', 'пидор', 'пидар', 'педик', 'пидр', 'пидарас', 'ебал', 'ебать', 'ебет', 'ебут', 'ебал', 'ебала', 'ебало', 'еба', 'ебаный', 'ебанутый',
'уебок', 'уебан', 'дебил', 'мудак', 'долбоеб', 'еблан', 'ебош', 'ебло', 'ебля', 'выебон', 'заебал', 'заебись', 'наебал', 'поебать',
'залупа', 'жопа', 'срака', 'говно', 'дерьмо', 'срать', 'бля', 'блять', 'блядь', 'бляд', 'блять', 'блят', 'блядина', 'блядский', 'блядство',
'манда', 'мандавошка', 'влагалище', 'бл@дь', 'бл@ть', 'блять', 'бл*дь',
'сука', 'суки', 'суку', 'сукой', 'сучка', 'сучара', 'cyка', 'cука', 'са', 'сyka',
'gандон', 'гандон', 'гондон', 'презерватив',
'пидор', 'пидар', 'педик', 'пидр', 'пидарас', 'пидрила', 'пидорас', 'педофил',
'пeдик', 'пидop', 'п1дор', 'пiдор',
'уебок', 'уебан', 'уебище', 'ублюдок', 'выродок',
'дебил', 'дебилоид', 'даун', 'долбоеб', 'еблан', 'ебланище',
'мудак', 'мудило', 'мудачье', 'мудачина', 'мудила', 'мудозвон',
'залупа', 'залупить', 'жопа', 'жопный', 'срака', 'сракотан',
'говно', 'говнюк', 'говноед', 'дерьмо', 'срать', 'высрал', 'обосрал',
'манда', 'мандавошка', 'влагалище', 'пилотка',
'шлюха', 'шалава', 'потаскуха', 'проститутка', 'блудница',
'гнида', 'падла', 'сволочь', 'мразь', 'тварь', 'скотина',
'чмо', 'чмошник', 'лох', 'лохматый', 'лошара', 'даун',
// Национальные оскорбления
'хохол', 'хохлы', 'хохлятина', 'хохляндия', 'укроп', 'укропы',
'москаль', 'москали', 'кацап', 'кацапы', 'кацапня',
'жид', 'жиды', 'жидовка', 'жидовня', 'жидяра', 'жидовский',
'еврей', 'еврейка', 'евреи', 'еврейский', 'жидовский', 'иудей',
'чурка', 'чурбан', 'чучмек', 'чучело', 'узбек', 'хачик', 'хач',
'азер', 'азиат', 'узкоглазый', 'косоглазый', 'раскосый',
'ниггер', 'негр', 'черножопый', ернож0пый', 'черномазый',
'пиндос', 'пиндосы', 'пиндосия', 'америкос', 'пендос',
// Нацистская тематика
'гитлер', 'гитлеровец', 'гиммлер', 'геббельс', 'геринг',
'нацист', 'нацисты', 'нацизм', 'наци', 'фашист', 'фашисты', 'фашизм',
'свастика', 'хайль', 'зиг', 'хайль', 'третийрейх', 'рейх',
'эсэс', 'сс', 'нсдап', 'вермахт',
'холокост', 'освенцим', 'концлагерь',
'ариец', 'арийцы', 'арийский', 'арийская',
// Экстремистские коды
'1488', '88', '14', 'авб', 'акб', 'ддт',
]; ];
// Profanity and inappropriate words (English) // Profanity and inappropriate words (English)
const ENGLISH_BLACKLIST = [ const ENGLISH_BLACKLIST = [
'fuck', 'fucked', 'fucker', 'fucking', 'fucks', 'fuk', 'fck', 'f**k', // Basic profanity
'shit', 'shits', 'shitty', 'shitter', 'sh1t', 'sht', 'fuck', 'fucked', 'fucker', 'fucking', 'fucks', 'fuk', 'fck', 'f**k', 'fock', 'fuk', 'phuck',
'bitch', 'bitches', 'bitching', 'b1tch', 'btch', 'motherfucker', 'motherfuck', 'mofo', 'mf',
'ass', 'asshole', 'arsehole', 'arse', 'a55', 'a55hole', 'shit', 'shits', 'shitty', 'shitter', 'sh1t', 'sht', 'shite', 'bullshit', 'horseshit',
'dick', 'dicks', 'dickhead', 'd1ck', 'dik', 'bitch', 'bitches', 'bitching', 'b1tch', 'btch', 'biatch', 'beyotch',
'cock', 'cocks', 'c0ck', 'cok', 'ass', 'asshole', 'arsehole', 'arse', 'a55', 'a55hole', 'asses', 'arsewipe',
'cunt', 'cunts', 'c**t', 'cnt', 'dick', 'dicks', 'dickhead', 'd1ck', 'dik', 'dickwad', 'dickface',
'pussy', 'pussies', 'puss', 'cock', 'cocks', 'c0ck', 'cok', 'cocksucker', 'cocksuck',
'whore', 'slut', 'sluts', 'slutty', 'cunt', 'cunts', 'c**t', 'cnt', 'kunt',
'bastard', 'bastards', 'wanker', 'tosser', 'pussy', 'pussies', 'puss', 'pussycat',
'nigger', 'nigga', 'negro', 'n1gger', 'n1gga', 'whore', 'slut', 'sluts', 'slutty', 'hoe', 'ho', 'tramp', 'prostitute',
'faggot', 'fag', 'fags', 'fagot', 'f4ggot', 'bastard', 'bastards', 'wanker', 'tosser', 'bellend', 'knobhead',
'retard', 'retarded', 'tard', 'damn', 'damned', 'goddamn', 'dammit', 'damnit',
'rape', 'raping', 'rapist', 'piss', 'pissed', 'pissing', 'pisser',
'nazi', 'hitler', 'heil', 'twat', 'wank', 'bollocks', 'bugger',
// Racial slurs
'nigger', 'nigga', 'niggaz', 'niger', 'negro', 'n1gger', 'n1gga', 'nig', 'nigg',
'coon', 'jigaboo', 'spook', 'darkie', 'darky',
'chink', 'chinky', 'gook', 'zipperhead',
'spic', 'beaner', 'wetback', 'greaser',
'kike', 'yid', 'heeb', 'hymie', 'sheeny',
'towelhead', 'raghead', 'sandnigger', 'camel', 'muzzie',
'cracker', 'honky', 'whitey', 'paleface',
'paki', 'curry', 'dothead',
'abo', 'boong', 'coon',
// Homophobic slurs
'faggot', 'fag', 'fags', 'fagot', 'f4ggot', 'fagget', 'fagg0t',
'queer', 'dyke', 'homo', 'poof', 'fairy', 'fudgepacker',
'tranny', 'shemale', 'heshe',
// Mental health slurs
'retard', 'retarded', 'tard', 'retart', 'r3tard',
'mongoloid', 'mongo', 'downie', 'spastic', 'spaz',
'psycho', 'nutjob', 'lunatic', 'mental',
// Sexual content
'rape', 'raping', 'rapist', 'molest', 'pedophile', 'pedo',
'porn', 'porno', 'xxx', 'sex', 'anal', 'blowjob', 'handjob',
'masturbate', 'orgasm', 'cumshot', 'jizz', 'sperm',
// Nazi/Extremist terms
'nazi', 'nazy', 'n4zi', 'nаzi',
'hitler', 'adolf', 'fuhrer', 'fuehrer', 'gitler',
'heil', 'sieg', 'swastika', 'hakenkreuz',
'ss', 'gestapo', 'wehrmacht', 'nsdap',
'holocaust', 'auschwitz', 'konzentrationslager',
'aryan', 'kkk', 'klan', 'klux',
'skinhead', 'whitepower', 'whitesupremacy',
// Extremist codes
'1488', '14/88', '1488', 'fourteeneightyfour',
'acab', 'antifa', 'blm',
// Violence
'kill', 'murder', 'genocide', 'terrorist', 'bomb', 'shoot',
]; ];
// Reserved system usernames // Reserved system usernames
@@ -43,6 +109,14 @@ const RESERVED_NAMES = [
'user', 'username', 'test', 'demo', 'guest', 'user', 'username', 'test', 'demo', 'guest',
'null', 'undefined', 'unknown', 'anonymous', 'anon', 'null', 'undefined', 'unknown', 'anonymous', 'anon',
'ospab', 'ospabhost', 'hosting', 'server', 'ospab', 'ospabhost', 'hosting', 'server',
'api', 'backup', 'cdn', 'database', 'email',
'ftp', 'mail', 'mysql', 'news', 'payment',
'postmaster', 'security', 'webmaster', 'www',
// Nazi leaders
'hitler', 'adolf', 'goebbels', 'himmler', 'goering', 'mengele',
'eichmann', 'bormann', 'hess', 'speer', 'heydrich',
// Extremist figures
'breivik', 'tarrant', 'roof', 'mcveigh',
]; ];
// Common number patterns to avoid (like test123, user1, etc) // Common number patterns to avoid (like test123, user1, etc)
@@ -51,6 +125,20 @@ const GENERIC_PATTERNS = [
/^test\d*$/i, /^test\d*$/i,
/^admin\d+$/i, /^admin\d+$/i,
/^\d+$/, // Only numbers /^\d+$/, // Only numbers
// Extremist numeric codes
/1488/,
/88$/, // HH = Heil Hitler
/^88/,
/14$/,
/^14/,
// Nazi combinations
/(hitler|adolf|nazi|fuhrer).*(88|1488|14)/i,
/(88|1488|14).*(hitler|adolf|nazi|fuhrer)/i,
// Anti-semitic patterns
/(jew|jude|kike).*(kill|death|die|hate|burn)/i,
/(kill|death|die|hate|burn).*(jew|jude|kike)/i,
// Violence patterns
/(kill|murder|shoot).*(all|every)/i,
]; ];
// Combine all blacklists // Combine all blacklists