Подмена ссылки для логина /user.

Прислано: greg007007007@drupal.org

чт, 14/01/2010 - 12:31

Вот, суть:
Недавно начал на друпале кодить, практически сразу встал вопрос как "спрятать" (при необходимости) ссылку на страницу аутентификации. В сети я не нашел готового решения(возможно такое уже и писали).
Есть мое решение, может кому пригодиться:

1. Включаем модуль path (позволяет создавать псевдонимы для адресов страниц (и н только) друпал)
2. Заходим в URL Aliases и создаем новый псевдоним (.../admin/build/path):
В графе существующий адрес (Existing system path) пишем user
В графе псевдоним (Path alias) пишем на свой вкус, нечто вроде supersecretlink1129827236
3. Открываем в корневой директории друпал файл .htaccess, находим строку RewriteEngine on
и буквально сразу после нее с новой строки пишем следующее:

RewriteCond %{REQUEST_URI} /user(/?)$
RewriteRule ^(.*)$ $1 [L,F]

в 1-й строке мы задаем условие (для URI: www.washdomen.ru/user, www.washdomen.ru/user/ ),
во 2-й строке правило L - условие последнее, F - Forbidden, запрет доступа (выдает средствами сервера статус 403).
--
Вот Вам и специалисты. Критики-море, куча обид, да вот только ошибку никто из говорливых не поправил за 2 дня. Чтож, промолчу, и без слов ВСЁ ясно.
Исправляю:
RewriteCond %{REQUEST_URI} (/user(/?)|user/login(/?))$
RewriteRule ^(.*)$ $1 [L,F]

Комментарии


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Применить"
Опубликовано greg007007007@d... в чт, 14/01/2010 - 12:36.

P.S. Ну и соответственно теперь обращаемся для аутентификации не к www.washdomen.ru/user, а к www.washdomen.ru/supersecretlink1129827236


Опубликовано gagaga в чт, 14/01/2010 - 12:38.

А зачем это вообще делать? Для простых юзеров можно спрятать блок с ссылкой на авторизацию и все.


Опубликовано greg007007007@d... в чт, 14/01/2010 - 12:48.

Чтобы повысить безопасность, в некотором смысле, поскольку ссылка с произвольным набором символов в данном случае выступает в качестве дополнительного "пароля". По эффективности эта мера практически не уступает решению с тем же .htaccess, require valid-user...
Учитывая простоту данного решения оно должно быть весьма эффективным (в плане усиления безопасности).
Т. е. если раньше аутентификация состояла из пары login+password, то теперь это уже тройка secreturl+login+password.
Если Вы знакомы с сочетаниями в теории вероятностей, то должны понять существенно снизившуюся вероятность "угадывания" в этом случае данных для аутентификации.


Опубликовано gagaga в чт, 14/01/2010 - 13:00.

Согласна, можно будет применить...


Опубликовано RxB в сб, 16/01/2010 - 20:41.

Ну вот, на нашем форуме стало на одного параноика больше... ТС, это надо лечить на начальных стадиях


Опубликовано Ветер в чт, 14/01/2010 - 23:56.

Тогда уж правильней поставить 404, а не 403. Так как 403 будет косвенно указывать что тут что-то есть :)


Опубликовано Greg007007007 в пт, 15/01/2010 - 16:58.

"Ветер" написал(а):

Тогда уж правильней поставить 404, а не 403. Так как 403 будет косвенно указывать что тут что-то есть :)

Ну тогда уже не просто 404 (403 - прописывается прямо в правиле RewriteRule и выдает 403 средствами сервера, а не друпала - до друпала на самом деле запрос не доходит вовсе) а скажем, есть у Вас пользовательская страница ошибки 404 в друпале по адресу /404. Тогда делаем, к примеру, вот как:

RewriteRule ^(.*)user(.*)$ $1404 [R=301]

или, понятней, если адрес Вашей пользовательской страницы ошибки 404 /pagenotfound

RewriteRule ^(.*)user(.*)$ $1pagenotfound [R=301]

--

"RxB" написал(а):

Ну вот, на нашем форуме стало на одного параноика больше...

Спасибо Вам, и таким как Вы - БОЛЬШОЕ! Я вполне серьезен, благодаря Вам я точно не останусь без работы.
Извиняюсь за нескромный вопрос, Вы случаем логин:пароль admin:admin не считаете достаточной мерой безопасности? :)))

Нет, Вы не подумайте, я не язвлю, а лишь пытаюсь ВЕРНО классифицировать собеседника, если можно так выразиться (с Вашего позволения, разумеется)...


Опубликовано RxB в пт, 15/01/2010 - 17:10.

"Greg007007007" написал(а):

не считаете достаточной мерой безопасности?

Нет, не считаю, ставлю нормальной длины и сложности.
Но считаю, что прятать ссылку логина это черезчур, так как:
1. Брут по http дело не быстрое
2. Брут по http дело такое которое тяжело не заметить
3. Если кому-то надо вас сломать, то вас сломают и без логина
И вообще по поводу прятанья ссылки логина и других якобы "супер-антихак средств", Dan, не так давно, в аналогичном топике рассказал своё мнение, я его мнение полностью разделяю.

Я рад, что благодаря мне вы не останетесь без работы, но всё же, даже если переопределять путь логина, то делать это стоит своим модулем, так как ваш способ затрагивает .htaccess, который может быть изменён во время обновления системы, а во-вторых требует модуль path, который не у всех может стоять. Недрупальский у вас метод решения задачи. Так что, товарищ, лучше работать над собой, нежели хвалится что благодаря таким я, вы останетесь без работы


Опубликовано Greg007007007 в пт, 15/01/2010 - 17:48.

Мало того что модуль path популярен и весьма полезен, он еще является частью ядра друпал, начиная с версии 4.3, вот текст о модуле Path с drupal.org: «...As of Drupal 4.3, this module has been integrated into the core.»

3-й пункт, Уважаемый RxB, право, не стоило так... Любой дверной замок вскрывается медвежатником за, примерно 30 минут, но Вы ведь не станете так огорчаться по этому поводу и не перестанете запирать дверь?
В вопросах безопасности не лишним быть знакомым с дисциплиной ТОКБ (Теоретические основы компьютерной безопасности), поверьте, это философия, "разработанная" специально для IT-шников.

По поводу .htaccess, не скрою, видимо есть здравое зерно...как минимум - нужно иметь в виду.
Но запрет, реализуемый через .htaccess на порядок надежней средства, реализуемого модулем друпала. Сравните цепочку, по которой "проходит" запрос в обоих случаях (условно, конечно - только чтобы уловить суть):
(.htaccess) Запрос -> Apache -> Запрет
(drupal module) Запрос -> Apache -> PHP -> Drupal -> Запрет
--

Уважаемые читатели! ПОМНИТЕ! Большинство взломов происходит по причине НЕДОСТАТОЧНЫХ мер безопасности! НО(!), здравый смысл никто не отменял. Если Вы действительно понимаете что делаете (как специалист), не слушайте других, делайте так, как считаете нужным в конкретной ситуации! (А ОПЫТ Ваших коллег - всегда имейте в виду).


Опубликовано RxB в пт, 15/01/2010 - 17:53.

Эм... И в чём порядок надёжности? Вы знакомы с hook_menu_alter() к примеру?


Опубликовано Greg007007007 в пт, 15/01/2010 - 19:07.

"RxB" написал(а):

Эм... И в чём порядок надёжности? Вы знакомы с hook_menu_alter() к примеру?

Да, конечно знаком, речь о том, что кол-во элементов задействуется меньшее, поймите, даже PHP в этом случае не задействуется. Повторюсь, до hook_menu_alter() программный путь ДЛИННЕЕ и соответственно вероятность ошибки (потенциальная) - ВЫШЕ.
Оценка безопасности всегда измеряется вероятностными характеристиками.

В конце концов я ТОЛЬКО пердложил тем, кому это будет нужно решение. При этом никого не критиковал и не претендовал на звание "решение года", "панацея"...
Напишите СВОЙ модуль, поручитесь за него и выложите для загрузки Ваш труд для сообщества.
Есть золотое правило: критикуя - предлагай.

Мы с Вами по-разному смотрим на одни и те же вещи. Никому не в обиду, но я 6 лет учился в университете и получил диплом гос. образца по специальности 075200 "Компьютерная безопасность". Я - применяю полученные знания на практике, по крайней мере стараюсь это делать.

И пусть меня лучше осудят за излишнее стремление защитить систему от взлома, чем посмеются над неприятными мерами.


Опубликовано Dan в пт, 15/01/2010 - 19:03.

"Greg007007007" написал(а):

Да, конечно знаком, речь о том, что кол-во элементов задействуется меньшее, поймите, даже PHP в этом случае не задействуется. Повторюсь, до hook_menu_alter() программный путь ДЛИННЕЕ и соответственно вероятность ошибки (потенциальная) - ВЫШЕ.

Я не понял, вы оптимизируете главную страницу? Если у вас такой сумашедший путь, то его набирать будут единицы пользователей - какой смысл в измерении длины и о какой ошибке речь?

"Greg007007007" написал(а):

Оценка безопасности всегда измеряется вероятностными характеристиками.

Вы теории где-то начитались? Почитайте практику. На моём опыте друпал ещё ни разу не был сломан (если не считать случаев "усиления" безопасности вроде вашего, при котором были допущены фатальные ошибки), а вот через окружение - множество раз.

"Greg007007007" написал(а):

НО(!), здравый смысл никто не отменял.

Именно. Только Ваше решение явно не от здравого смысла, а от банальной параннои. Что _ещё_ Вы сделали, чтобы обезапасить себя от атак?


Опубликовано RxB в пт, 15/01/2010 - 19:16.

"Greg007007007" написал(а):

но я 6 лет учился в университете и получил диплом гос. образца по специальности 075200 "Компьютерная безопасность". Я - применяю полученные знания на практике, по крайней мере стараюсь это делать.

А я учился на очном отделении, на год меньше, мне, наверно, не стоит хвалится? Диплом в наше время не более чем бумажка. И имею опыт работы достаточный, вас быстрее сломают с тылов, через FTP, SSH, украдут пароли сохранённые в клиенте. Чем будут брутить по http


Опубликовано Greg007007007 в пт, 15/01/2010 - 19:42.

Всем спасибо за критику, но я не склонен к битию себя в грудь и рассказах о покоренных вершинах.
Если ЭТО никому не интересно и кажется параноидальным - пожалуйста, считайте что я преклонился перед Вашим опытом, я не обеднею от этого! :)

Возможно я не в том месте разместил своё скромное мнение (опять-таки IMHO, конечно - извините за каламбур).

Модераторы, если Вам угодно - удалите ради бога этот пост, пока меня не обвинили в чем-нибудь криминальном! И если, не дай бог, я оскорбил кого-то заявлением о своем образовании...Уважаемые "самоучки" - я знаю по меньшей мере десяток "самоучек" (на мой взгляд это название грубовато, но я не располагаю другим столь же кратким и исчерпывающим названием) которые дадут фору уважаемым профессорам-практикам.

"Dan" написал(а):

Вы теории где-то начитались? Почитайте практику. На моём опыте друпал ещё ни разу не был сломан (если не считать случаев "усиления" безопасности вроде вашего, при котором были допущены фатальные ошибки), а вот через окружение - множество раз.

Если Вы не заметили, я не пытаюсь осквернить чей-то опыт. Приведите пример, в котором эти жалкие мои пару строк в .htaccess послужат брешью?

Я безмерно счастлив что у многих из уважаемых кодеров есть "бумажки" об образовании, это важно для Моей страны, это в целом повышает уровень образованности нации. Жаль только что субъективное мнение зачастую главенствует над объективным.

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

Прошу меня извинить, но я вынужден прекратить комментировать этот пост, ну конечно за исключением случая появления здесь интересного (для меня) каммента. ;)


Опубликовано Dan в сб, 16/01/2010 - 17:40.

"greg007007007@drupal.org" написал(а):

Вот Вам и специалисты. Критики-море, куча обид, да вот только ошибку никто из говорливых не поправил за 2 дня. Чтож, промолчу, и без слов ВСЁ ясно.

Да-да-да. Мы никуда не годимся :)

PS: ещё user/register есть. Да и запрещать надо /user* если уж на то пошло. Скоро будет стабильная версия high security drupal? )))


Опубликовано greg007007007@d... в сб, 16/01/2010 - 18:34.

Скоро, скоро, здравомыслящие вы мои... Когда выйдет первая бета - позову вас всех в тестеры, потешусь.


Опубликовано RxB в сб, 16/01/2010 - 20:15.

Мбугага


Опубликовано irean в вт, 09/03/2010 - 20:47.

Большое спасибо, я спрятала также папку admin.


Опубликовано RxB в вт, 09/03/2010 - 22:12.

Молодец, что спрятали, можете теперь спать спокойно, забить на обновление модулей и движка и поставить пароль 123


Опубликовано Dalay в вт, 09/03/2010 - 22:39.

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

PS Всегда считал лучшей защитой от взлома ежедневный бэкап.


Опубликовано Ветер в ср, 10/03/2010 - 05:43.

"Dalay" написал(а):

PS Всегда считал лучшей защитой от взлома ежедневный бэкап.

Это не защита, а лечение последствий.


Опубликовано FORTIS в ср, 10/03/2010 - 06:22.

 logintoboggan насколько помню позволяет ограничить количество попыток входа, и таймаут между попытками увеличивает. этого не достаточно?

я бы спрятал ссылку не на логин, а на сайт ^^)


Опубликовано RxB в ср, 10/03/2010 - 06:36.

Зачем прятать? Лучше вообще не выкладывать сайт. Нет сайта -> его никто не взломает -> нет цели для атаки -> не надо защищать


Опубликовано FORTIS в ср, 10/03/2010 - 06:58.

Запрос -> Запрет =)


Опубликовано Dalay в ср, 10/03/2010 - 07:54.

"Ветер" написал(а):

Это не защита, а лечение последствий.

Сайт не Родина, фанатизм тут не к чему.


Опубликовано Clarion в пт, 12/03/2010 - 00:54.

Постебались над человеком, причем на ровном месте


Опубликовано irean в ср, 07/04/2010 - 22:27.

"RxB" написал(а):

Молодец, что спрятали, можете теперь спать спокойно, забить на обновление модулей и движка и поставить пароль 123

Обновляет и модули и движок. И почему Вы решили, что не будет обновлять? Какая связь?
А отсечь лишнюю попытку посмотреть админку я думаю стоит.


Опубликовано Sinkora в чт, 08/04/2010 - 00:27.

http://www.whitehouse.gov/user - здесь, как видим, доступ для авторизации закрыт.
А, по-моему, статья неплохая. И весело было почитать комменты :)

Но в случаях, когда на сайте будут авторизоваться пользователи, смысла особого в скрытии /user не может быть, поскольку ссылка на страницу авторизации будет общедоступной.

Но, ежедневно боты пытаются или авторизоваться на сайте на /user, /user/login, или зарегистрироваться на user/register. И чем плохо, если мы для них скроем эти алиасы?


Опубликовано Dan в чт, 08/04/2010 - 10:03.

"Sinkora" написал(а):

И чем плохо, если мы для них скроем эти алиасы?

Вопрос не в том, скрывать или нет, а в том, как это делать. Человек удалил гланды через уши, вместо использования стандартных механизмов, типа hook_menu_alter и custom_url_rewrite_inbound/outbound.

"greg007007007@drupal.org" написал(а):

Исправляю:
RewriteCond %{REQUEST_URI} (/user(/?)|user/login(/?))$
RewriteRule ^(.*)$ $1 [L,F]

Так и не исправлено с учётом что есть ещё user/register.

"greg007007007@drupal.org" написал(а):

Скоро, скоро, здравомыслящие вы мои... Когда выйдет первая бета - позову вас всех в тестеры, потешусь.

Ну когда же?


Новое на сайте