Что такое URL для входа пользователя (также как скрыть форму входа?)


10

Я не хочу, чтобы посетители могли зарегистрироваться на моем сайте; Однако я считаю, что для тестирования необходимо иметь одного зарегистрированного пользователя. Например, я опубликую статью с ограниченным доступом, чтобы мой тестовый пользователь мог видеть, как эта статья выглядит на сайте, без «проветривания грязного белья» для широкой публики (хорошо, все 1 / день, которые на самом деле посещают ...) ,

Моя проблема на данный момент заключается в том, что я в конечном итоге порчу веб-сайт, так как мне приходится публиковать / отменять публикацию формы входа пользователя. В настоящее время я «обхожу» эту проблему, скрывая форму входа в подкатегорию, чтобы она не была сразу видна случайному посетителю. Можно ли создать альтернативный метод (например, пользовательский URL), который позволит моему тестовому пользователю просматривать контент, помеченный как ограниченный, без изменения того, что увидит гость с открытым доступом?

Ответы:


8

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

Тогда просто дайте своему клиенту URL.

Итак, шаги:

  1. Создайте новое меню, назовите его Hidden
  2. Не публикуйте модуль нового меню
  3. Добавьте новый пункт меню, выберите «Диспетчер пользователей» и «Форма входа».
  4. Назовите пункт меню Login или что-то еще, чтобы вы знали, что это такое, но измените псевдоним на то, что кто-то не догадывается.
  5. Проверьте свою форму, перейдя на yoursite.com/aliasname

10

Как продолжение ответа Брайана Пита:

Если вы идете на URL

domain.com/index.php?option=com_users&view=login

Вы можете войти без установки пункта меню или каких-либо проблем с публикацией / отменой публикации. Это может быть названо в некоторой степени проблемой в Joomla, поскольку, зная свой путь, вы все равно можете зарегистрироваться / войти, если знаете структуру URL. Существуют правила, предотвращающие это, но обычно по умолчанию вы можете просто использовать такие прямые пути, чтобы добраться туда, куда вам нужно идти.

http://www.joomla.org/index.php?option=com_users&view=login

Вот и все, даже основной сайт Joomla, у которого нет прямого доступа к логину, может быть доступен таким образом.

Я хочу убедиться, что вы также используете правильный ACL, если его «только» зарегистрированные пользователи могут войти в систему любой, кто знает структуру Joomla. Также, как сказал Брайан, убедитесь, что разрешения на регистрацию отключены.


Есть ли аналогичный URL для /index.php?option=com_users&view=logout (который, на мой взгляд, был интуитивно понятным, но оказался неверным)?
bobthechemist

Вы хотите автоматически выйти из системы? Это немного странно, выход из Joomla требует некоторых данных поста, отсюда и форма / кнопка. Эта ссылка приведет вас к кнопке в основном.
Джордан Рамстад

Если вы действительно беспокоитесь о том, что люди попадают на эту страницу, вы можете либо установить модный плагин, который заставляет пользователя использовать токен в качестве части URL-адреса (я знаю, что есть один для администратора, я уверен, что есть один для передней конец) ... но вы также можете установить это: extensions.joomla.org/extensions/access-a-security/…, который блокирует IP-адреса, если пользователь пытается 10 раз войти в систему. Он также уведомляет вас. Это откроет вам глаза на частоту атак на ваш сайт. Я заметил, что все 100% попыток используют "admin" в качестве имени пользователя.
Брайан Пит

Я просто хотел сказать, что даже без пунктов меню вход / регистрация все еще доступны. Так что если есть необходимость войти в систему, не имея дело с пунктом меню, это возможно, но это также означает, что это может сделать каждый. Если регистр не заблокирован, то любой может также создать учетную запись и получить доступ к любой «секретной» странице, которая может быть, если нет ACL для предотвращения этого. Это можно сделать, создав дополнительную группу ACL и сделав пользователя, который может получить к нему доступ, также в этой группе. Для рассматриваемой страницы потребуется эта группа.
Джордан Рамстад

Хм, что хорошего в ACL, если вы еще не вошли в систему. Насколько я понимаю, вы никогда не сможете скрыть общедоступную страницу входа без специального плагина. Независимо от этого, за исключением атак грубой силы, если у вас нет логина, вы не сможете пройти очень далеко. Я не вижу смысла возиться с этим так сильно.
Брайан Пит

4

Вы должны быть в состоянии сделать это путем переопределения макета для формы входа в систему. Добавьте немного кода PHP вверху файла макета. Этот добавленный код проверяет пользовательский параметр в URL-адресе и определенное значение. Если кто-то пытается получить доступ к странице входа через любой URL-адрес, но не включает пользовательский параметр и определенное значение (например, abc = xyz ), тогда код выдает «return;» так что макет формы не будет обрабатываться для отображения.

С помощью этого кода в переопределяющем файле макета только пользователь, который знает URL (который включает этот настраиваемый параметр и допустимое значение), сможет использовать эту форму входа в систему.

Например: секретный URL может быть

mydomain.com/?option=com_users&view=login&abc=xyz

Затем добавьте этот код в верхнюю часть основного файла макета для формы входа в систему:

if(JFactory::getApplication()->input->get('abc')!='xyz'){
    return;
}

Хорошая идея! Это довольно простое решение для отключения просмотра. При необходимости его можно распространить и на модуль (хотя модуль не имеет прямого URL для доступа).
Джордан Рамстад

3

Я часто сталкивался с подобной проблемой, потому что я часто хочу вход в систему для редактирования веб-сайтов, которыми я управляю, без необходимости иметь форму входа. В итоге я создал небольшой букмарклет, который добавил на панель инструментов своего браузера. Это, очевидно, очень «локальное» решение, так как букмарклет доступен только мне (или любому, кому я копирую код), но он работает на ЛЮБОМ сайте Joomla и невероятно экономит время, просто нажмите на ссылку и форму входа будет отображаться (учитывая, что вы находитесь на сайте Joomla, конечно ...).

 javascript:void((function(){var loc = location.href; loc.indexOf("?") == -1 ? (location.href = loc+"?option=com_users&view=login") : (location.href = loc+"&option=com_users&view=login");})());
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.