zhekka3 0 Опубликовано: 25 января 2008 Рассказать Опубликовано: 25 января 2008 Если зарегистрировать пользователя с логином, содержащим круглые скобки, то возможна повторная его регистрация, при которой возникает SQL ошибка MySQL Error! ------------------------ The Error returned was: Duplicate entry 'login)' for key 2 Error Number: 1062 ... Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 072 Опубликовано: 25 января 2008 Рассказать Опубликовано: 25 января 2008 принято Цитата Ссылка на сообщение Поделиться на других сайтах
error2k 2 Опубликовано: 25 января 2008 Рассказать Опубликовано: 25 января 2008 А зачем вообще добавили скобки в список допустимых символов логина?.. мне вот даже интересно.. Цитата Ссылка на сообщение Поделиться на других сайтах
zhekka3 0 Опубликовано: 25 января 2008 Рассказать Опубликовано: 25 января 2008 Автор Ошибка в том, что SQL воспринимает круглые скобки как спец. символы в регулярных выражениях $db->query ("SELECT name FROM " . USERPREFIX . "_users WHERE LOWER(name) REGEXP '[[:<:]]{$name}[[:>:]]'"); Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 072 Опубликовано: 25 января 2008 Рассказать Опубликовано: 25 января 2008 Ошибка в том, что SQL воспринимает круглые скобки как спец. символы в регулярных выражениях Неверно, посмотрите на ошибку MySQL, это не синтаксическая ошибка. Это срабатывает дополнительная защита в MySQL от регистрации одинаковых логинов, если срипт случайно пропустит в проверке одинанаковый логин, то сработает дополнительно установленная защита на уровне БД. Данная ошибка не является ошибкой в безопасности скрипта. Цитата Ссылка на сообщение Поделиться на других сайтах
zhekka3 0 Опубликовано: 26 января 2008 Рассказать Опубликовано: 26 января 2008 (изменено) Автор Нашёл еще один баг. Если пользователь при регистрации нового аккуанта выберет пароль, включающий кроме букв и цифр, знаки, например, применяемые в SQL-запросах / * " и т. д. то его вход на сайт будет не возможен из-за экранирования пароля, для защиты от SQL-инъекции Если пароль, например, """"/**/ то он преобретает вид \\"\\"\\"\\"/**/ Кстати, зачем экранировать пароль, если он в SQL-запросе представляется md5 хешем? Изменено 26 января 2008 пользователем zhekka3 Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 072 Опубликовано: 26 января 2008 Рассказать Опубликовано: 26 января 2008 Кстати, зачем экранировать пароль, если он в SQL-запросе представляется md5 хешем? Да согласен это лишнее. Цитата Ссылка на сообщение Поделиться на других сайтах
wildshaman 0 Опубликовано: 3 февраля 2008 Рассказать Опубликовано: 3 февраля 2008 И может не туда, раз уш пошла такая тема: почему это у меня не зоходит в профиль юзерей, в логине которых есть русские символы. Вроде у всех работает а у мну нет... Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.