Как я могу отфильтровать ненормативную лексику в идентификаторах base36?

Я хочу использовать base36 в веб-приложении, которое я разрабатываю... но поскольку идентификатор виден пользователям как URL-адрес, я хочу отфильтровать ненормативную лексику. Кто-нибудь решил это? Или это вообще реальная проблема?

Имеет ли смысл просто пропускать числа в моей последовательности базы данных?


person Chris    schedule 17.02.2011    source источник
comment
Обязательная ссылка на TDWTF: Автоматический генератор проклятий.   -  person R. Martinho Fernandes    schedule 17.02.2011
comment
Вы имеете в виду, случайно идентификатор base36 может появиться как page.php?id=screwyou3234?   -  person Marc B    schedule 17.02.2011
comment
Если я слежу за вами, вы передаете свой идентификатор в base36 в URL-адресе, верно? Ну, если вы не хотите, чтобы ваш идентификатор содержал ненормативную лексику, почему бы вам просто не передать его как base10 и преобразовать, когда это необходимо? Кроме того, есть ли у вас причина работать в base36? Большинство систем (например, базы данных, средние уровни и т. д.) ожидают базы 10 (ну, в любом случае, нотация в базе 10, внутри все 0 и 1).   -  person Sem Vanmeenen    schedule 17.02.2011
comment
@SemVanmeenen Я использую короткие коды, поскольку пользователям иногда нужно вводить идентификатор в текстовое сообщение, отправляемое на веб-сайт.   -  person Chris    schedule 18.02.2011


Ответы (2)


Что ж, вместо того, чтобы пытаться собрать все возможные ругательства, просто отфильтруйте гласные. Это оставит вам множество перестановок в пространстве. По общему признанию, вы только что сократили число с основанием 36 до основания 31, но числа с основанием 31 являются действительными числами с основанием 36, предполагающими тот же набор символов (a-z0-9). ЕСЛИ это вас беспокоит, замените пять гласных другими не магическими 7-битными символами ascii, такими как !,@,$,% и (.

Конечно, вы можете закончить с sh1t и fck, но ненормативная лексика находится в сознании читателя.

person x0n    schedule 17.02.2011

Почему бы просто не использовать полноценный случайно сгенерированный GUID в шестнадцатеричном формате? Независимо от того, на каком языке программирования вы работаете, это должно быть легко сгенерировано. И, будучи представленным в шестнадцатеричном формате, я бы предположил, что шансы на создание чего-то, что нарушает легко оскорбительный подход, равны нулю.

person nickwesselman    schedule 17.02.2011
comment
Потому что оно уродливое и не короткое :P Хотя даже гораздо меньшее число по-прежнему имеет «оскорбительную способность, приближающуюся к нулю». - person ; 17.02.2011
comment
Если вас действительно беспокоят некрасивые URL-адреса, почему бы не использовать оптимизированные для SEO URL-адреса? например слаги в стиле wordpress? - person nickwesselman; 17.02.2011
comment
Мне нужно иметь короткие идентификаторы, так как некоторые пользователи будут отправлять текстовые сообщения на сайт, используя идентификаторы. - person Chris; 18.02.2011