Подделка ников при регистрации, используя разные раскладки

Проблемы с установкой или работой phpBB 3.0.x? Получите помощь здесь!
С 1 января 2017 года phpBB Group прекращает поддержку phpBB версии 3.0.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.0 до 1 июля 2017 года.
Подробнее: Окончание поддержки phpBB 3.0.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
KASH
phpBB 1.2.0
Сообщения: 15
Стаж: 17 лет 2 месяца
Откуда: ФорумКурска.РФ

Подделка ников при регистрации, используя разные раскладки

Сообщение KASH »

Наверняка всем знакома проблема с шутниками, подделывающими существующие ники, заменяя похожие буквы из английского или русского алфавита. К сожалению, не нашёл решения здесь, поэтому пришлось самостоятельно разобраться с проблемой.

Открываем includes/functions_user.php и в проверках функции function validate_username (например, перед строкой $sql = 'SELECT username) вставляем код:

Код: Выделить всё

#Check Russian & English chars in $username
if(preg_match('/[а-яё]+/iu',$username)&&preg_match('/[a-z]+/iu',$username))
 {
  return 'INVALID_CHARS';
 }
Обязательно сохраните в кодировке UTF-8 без BOM (это требование для всех файлов phpBB3, содержащих русские символы).
Последний раз редактировалось KASH 18.03.2012 15:36, всего редактировалось 1 раз.
Аватара пользователя
evrus01
Former team member
Сообщения: 1274
Стаж: 15 лет 6 месяцев
Откуда: Москва
Благодарил (а): 107 раз
Поблагодарили: 234 раза

Re: Подделка ников при регистрации, используя разные расклад

Сообщение evrus01 »

KASH писал(а):это требование для всех файлов phpBB3 без исключения
Скажите пожалуйста, где указано это требование? Зачем это нужно для php-файлов? В дистрибутиве все php-файлы имеют кодировку "ANSI".
Я без всяких "претензий", просто хотел до конца разобраться в этом моменте.

За ХАК спасибо огромное!
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17273
Стаж: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 633 раза
Поблагодарили: 2413 раз

Re: Подделка ников при регистрации, используя разные расклад

Сообщение rxu »

Такой трюк не должен срабатывать, так как для проверки ника используется не сам ник, а его "очищенный" эквивалент, username_clean.
Изображение
Аватара пользователя
KASH
phpBB 1.2.0
Сообщения: 15
Стаж: 17 лет 2 месяца
Откуда: ФорумКурска.РФ

Re: Подделка ников при регистрации, используя разные расклад

Сообщение KASH »

evrus01 писал(а):
KASH писал(а):это требование для всех файлов phpBB3 без исключения
Скажите пожалуйста, где указано это требование? Зачем это нужно для php-файлов? В дистрибутиве все php-файлы имеют кодировку "ANSI".
Верно, не для всех, а только содержащих русские символы. В данном случае появились а,я,ё, которые должны быть в UTF-8. Ради эксперимента сохраните в ANSI и увидите, что страница регистрации не работает. То же самое с шаблонами.
Во-вторых, прочтите:
[b][color=red]rxu[/color][/b] писал(а):... обязательно в кодировке UTF-8 без BOM (это требование, обязательное для всех файлов без исключения) ...
rxu писал(а):Такой трюк не должен срабатывать, так как для проверки ника используется не сам ник, а его "очищенный" эквивалент, username_clean.
Очищенный используется при записи в БД. Функция validate_username осуществляет проверки по "грязному" username. Во всяком случае проверил - всё работает, иначе бы не писал. Можете проверить сами, просто смешав русские символы с английскими. Будет появляться ошибка о недопустимых символах в нике.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17273
Стаж: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 633 раза
Поблагодарили: 2413 раз

Re: Подделка ников при регистрации, используя разные расклад

Сообщение rxu »

KASH писал(а):Функция validate_username осуществляет проверки по "грязному" username.

Код: Выделить всё

    $sql = 'SELECT username
        FROM ' . USERS_TABLE . "
        WHERE username_clean = '" . $db->sql_escape($clean_username) . "'";
    $result = $db->sql_query($sql);
    $row = $db->sql_fetchrow($result);
    $db->sql_freeresult($result);

    if ($row)
    {
        return 'USERNAME_TAKEN';
    } 
Выше задано значение $clean_username = utf8_clean_string($username);
Поэтому Ваше утверждение неверно.
Изображение
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Подделка ников при регистрации, используя разные расклад

Сообщение Sheer »

evrus01 писал(а): где указано это требование?
Вообще-то нигде. Но
evrus01 писал(а):В дистрибутиве все php-файлы имеют кодировку "ANSI".

А вот и нет. Не все. Загляни в папку language/ru и проверь кодировку файлов ;)
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
Палыч
Former team member
Сообщения: 9683
Стаж: 20 лет 4 месяца
Откуда: Питер
Благодарил (а): 3 раза
Поблагодарили: 454 раза

Re: Подделка ников при регистрации, используя разные расклад

Сообщение Палыч »

Sheer писал(а):Вообще-то нигде.
Вообще-то, кое-где указано.
В любом языковом файле

Код: Выделить всё

// DEVELOPERS PLEASE NOTE
//
// All language files should use UTF-8 as their encoding and the files must not contain a BOM.
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
Аватара пользователя
KASH
phpBB 1.2.0
Сообщения: 15
Стаж: 17 лет 2 месяца
Откуда: ФорумКурска.РФ

Re: Подделка ников при регистрации, используя разные расклад

Сообщение KASH »

В данном случае $clean_username - аналог StrToLower и некоторых других нормализаций. rxu приведён пример поиска на соответствие уже зарегистрированного ника в БД, причём поиск по "чистому" нику, естественно, гораздо быстрее.
Нам же нужно получить $_POST['username'] из формы регистрации и проверить его на содержание символов обеих алфавитов. rxu, почему же тогда мой пример работает?
includes/ucp/[b]ucp_register.php[/b] писал(а):

Код: Выделить всё

...
$template->assign_vars(array(
...
'USERNAME' => $data['username']
...
Последний раз редактировалось KASH 18.03.2012 18:30, всего редактировалось 1 раз.
Аватара пользователя
Палыч
Former team member
Сообщения: 9683
Стаж: 20 лет 4 месяца
Откуда: Питер
Благодарил (а): 3 раза
Поблагодарили: 454 раза

Re: Подделка ников при регистрации, используя разные расклад

Сообщение Палыч »

Идея в принципе ущербна.
Весьма много "креативщиков" использующих обе раскладки в никах. Просто так привыкли.
(например: Пpo100Peпa)
Они пострадают.
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
Аватара пользователя
KASH
phpBB 1.2.0
Сообщения: 15
Стаж: 17 лет 2 месяца
Откуда: ФорумКурска.РФ

Re: Подделка ников при регистрации, используя разные расклад

Сообщение KASH »

Палыч писал(а):Пpo100Peпa
Не вижу в этом примере букв, которые должны быть в английской раскладке. Этот и подобные ники будут успешно зарегистрированы.

А вот Палыч с заменённой буквой "а" на английскую как раз пострадает... ;)
Shredder
Former team member
Сообщения: 2266
Стаж: 17 лет 9 месяцев
Благодарил (а): 283 раза
Поблагодарили: 584 раза

Re: Подделка ников при регистрации, используя разные расклад

Сообщение Shredder »

Pro_Сталкер какой-нибудь тоже пострадает
Аватара пользователя
Палыч
Former team member
Сообщения: 9683
Стаж: 20 лет 4 месяца
Откуда: Питер
Благодарил (а): 3 раза
Поблагодарили: 454 раза

Re: Подделка ников при регистрации, используя разные расклад

Сообщение Палыч »

KASH писал(а):Не вижу в этом примере букв, которые должны быть в английской раскладке.
А вы и не увидите.
Это приведён реальный ник.
Латиница - 2,3,7,8,10
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
Аватара пользователя
KASH
phpBB 1.2.0
Сообщения: 15
Стаж: 17 лет 2 месяца
Откуда: ФорумКурска.РФ

Re: Подделка ников при регистрации, используя разные расклад

Сообщение KASH »

Палыч писал(а):Это приведён реальный ник.
Латиница - 2,3,7,8,10
Все буквы в том примере вполне могут быть на кириллице.
Shredder писал(а):Pro_Сталкер
Решайте сами, что важнее - подобный "криатифф" или избавление от шутников и плагиаторов. Я выбрал последнее. Отстреливать их вручную не вижу смысла - Сизифов труд.
Аватара пользователя
Палыч
Former team member
Сообщения: 9683
Стаж: 20 лет 4 месяца
Откуда: Питер
Благодарил (а): 3 раза
Поблагодарили: 454 раза

Re: Подделка ников при регистрации, используя разные расклад

Сообщение Палыч »

KASH писал(а):А вот Палыч с заменённой буквой "а" на английскую как раз пострадает... ;)
Кстати, такой фокус не пройдет и без ваших правок, username_clean не позволит.
KASH писал(а):что важнее - подобный "криатифф" или избавление от шутников и плагиаторов.
Если у вас нет первых и слишком много вторых, я вам сочувствую.
KASH писал(а):Я выбрал последнее.
Это ваше решение. Но оно не претендует на панацею. Скорее, наоборот, ещё больше ограничивает ваших пользователей.
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
Аватара пользователя
KASH
phpBB 1.2.0
Сообщения: 15
Стаж: 17 лет 2 месяца
Откуда: ФорумКурска.РФ

Re: Подделка ников при регистрации, используя разные расклад

Сообщение KASH »

Палыч писал(а):Кстати, такой фокус не пройдет и без ваших правок, username_clean не позволит.
В качестве примера посмотрите пользователей: 40333, 40334 и 40335. Почему username_clean позволил такое? Я бы не хотел, чтобы какой-то плагиатор писал якобы от моего имени. Как, в прочем, и любой участник форума.
Палыч писал(а):наоборот, ещё больше ограничивает ваших пользователей
Гораздо больше пользователей ограничивают настройки в ACP: ASCII (без международного юникода), только буквенно-цифровые, буквенно-цифровые и разделители.
Палыч писал(а):Если у вас нет первых и слишком много вторых, я вам сочувствую.
Спасибо, но стоит появится всего-лишь одному такому умнику и борьба с ним вручную теряет всякий смысл.

Вернуться в «Поддержка phpBB 3.0.х»