Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 6 Ответов
  • 3154 Просмотров
*

scientificman

  • Захожу иногда
  • 161
  • 6 / 0
Здравствуйте!

Работаю над переводом сайта на человеко-понятные ссылки. Использую штатные возможности Joomla 2.5. Заметил, что при формировании ссылок на профиль пользователя движок использует поле username. Вследствие этого возникают 2 проблемы.
1. Снижается безопасность.
2. Ссылки, в которых используются русские символы не открываются.

Вижу два выхода из ситуации: либо подставлять вместо имени пользователя поле ФИО, обеспечивая его транслитерацию, либо, что меня бы вполне устроило, поле ID пользователя.

Кто с этим сталкивался? Прошу помощи!
*

AlexSmirnov

  • Завсегдатай
  • 1862
  • 272 / 16
  • Ищите и найдете
Вы правы, что показ имени пользователя предоставляет потенциальному взломщику сайта половину решения уровнения "имя пользователя + пароль = вход на сайт", но с другой стороны, в 2013 году наши имена пользователей в интернете больше ни для кого ни секрет.

Кроме того, не для того ли Ваши пользователи будут присоединяться к Вашему сообществу, чтобы стать популярным для кого-то и создать, в идеале, дружеские или деловые отношения. При анонимности пользователей такое не возможно. 

Я лично поддерживаю здесь логику разработчиков, хотя более тонкая подстройка ссылок всегда возможно с использованием соответсвующих расширений SEF, как, к примеру "sh404SEF" или "SEF Advance".
# Back the fufalo (особенно ту самую столкершу)! #
# ВАЖНО! Кайфую от удаления присланного в личку спама, почти как от любви (особенно по выходным). #
*

scientificman

  • Захожу иногда
  • 161
  • 6 / 0
По поводу открытости и дружеских отношений - полностью с Вами согласен! Именно поэтому у нас в сообществе (LeanZone.ru) принято общение под реальными именами и фамилиями. И я был бы совсем не против, если бы имелась возможность транслитерировать их в URL профиля! У нас никто не знает имен пользователей! А так, получается, что и мы администраторские username's делаем доступными. Хорошая возможность для хакеров!

Я думал об использовании SEF-компонентов. К этому подталкивают, в числе прочего, и ID материалов в URL (хаки в движке не хочется делать). Но что-то пугают меня мнения о том, что они нагружают сервер. Да и лишняя угроза безопасности. Думал обойтись штатными настройками.
*

scientificman

  • Захожу иногда
  • 161
  • 6 / 0
Поковырялся немного в исходниках CB. Проблему удалось отчасти "решить",  с помошью небольшого хака роутера. Файл components/com_comprofiler/router.php.

В функции построения маршрута comprofilerBuildRoute, которая возвращает имя пользователя по его ID закомментировал строку
Код
$query['user']		=	str_replace( '.', '_', $username );		// a dot (.) in a username is mishandled by the dot htaccess of Joomla 1.5

А в обратной функции comprofilerParseRoute, закомментировал строку
Код
$user				=	$userIds[0];


Тем самым в первом случае замены ID -> username, а во-втором обратной не происходит. При включении SEF вместо имени пользователя выводится его ID. Но это хак! Мне решение не нравится, тем более, что код надо бы и почистить, да и при обновлении CB все слетит! Поэтому тема остается открытой!
« Последнее редактирование: 28.05.2013, 22:18:33 от scientificman »
*

scientificman

  • Захожу иногда
  • 161
  • 6 / 0
Еще одно возможное решение - использование компонента Simple Custom Router, который позволяет использовать регулярные выражения программируя замену URL. Вроде бы достаточно легкий компонент. Пока не тестировал. Может быть кто-то использовал? Как он в работе?
*

AlexSmirnov

  • Завсегдатай
  • 1862
  • 272 / 16
  • Ищите и найдете
Я тоже против хаков по тем же самым упомянутым Вами причинам.

С Simple Custom Router не работал. Он, похоже, имеет неплохие отзывы.
# Back the fufalo (особенно ту самую столкершу)! #
# ВАЖНО! Кайфую от удаления присланного в личку спама, почти как от любви (особенно по выходным). #
*

scientificman

  • Захожу иногда
  • 161
  • 6 / 0
Небольшой диалог, подтверждающий, что проблема решается лишь хаком (разработчики рекомендуют просто выкинуть часть кода из router.php), состоялся на форуме разработчиков.

Большое спасибо (и + от меня) AlexSmirnov за посредничество в диалоге!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться