Подмена ссылки для логина /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@drupal.org's blog
- Для комментирования войдите или зарегистрируйтесь
P.S. Ну и соответственно теперь обращаемся для аутентификации не к www.washdomen.ru/user, а к www.washdomen.ru/supersecretlink1129827236
- Для комментирования войдите или зарегистрируйтесь
А зачем это вообще делать? Для простых юзеров можно спрятать блок с ссылкой на авторизацию и все.
- Для комментирования войдите или зарегистрируйтесь
Чтобы повысить безопасность, в некотором смысле, поскольку ссылка с произвольным набором символов в данном случае выступает в качестве дополнительного "пароля". По эффективности эта мера практически не уступает решению с тем же .htaccess, require valid-user...
Учитывая простоту данного решения оно должно быть весьма эффективным (в плане усиления безопасности).
Т. е. если раньше аутентификация состояла из пары login+password, то теперь это уже тройка secreturl+login+password.
Если Вы знакомы с сочетаниями в теории вероятностей, то должны понять существенно снизившуюся вероятность "угадывания" в этом случае данных для аутентификации.
- Для комментирования войдите или зарегистрируйтесь
Согласна, можно будет применить...
- Для комментирования войдите или зарегистрируйтесь
Ну вот, на нашем форуме стало на одного параноика больше... ТС, это надо лечить на начальных стадиях
- Для комментирования войдите или зарегистрируйтесь
Тогда уж правильней поставить 404, а не 403. Так как 403 будет косвенно указывать что тут что-то есть :)
- Для комментирования войдите или зарегистрируйтесь
Тогда уж правильней поставить 404, а не 403. Так как 403 будет косвенно указывать что тут что-то есть :)
Ну тогда уже не просто 404 (403 - прописывается прямо в правиле RewriteRule и выдает 403 средствами сервера, а не друпала - до друпала на самом деле запрос не доходит вовсе) а скажем, есть у Вас пользовательская страница ошибки 404 в друпале по адресу /404. Тогда делаем, к примеру, вот как:
RewriteRule ^(.*)user(.*)$ $1404 [R=301]
или, понятней, если адрес Вашей пользовательской страницы ошибки 404 /pagenotfound
RewriteRule ^(.*)user(.*)$ $1pagenotfound [R=301]
--
Ну вот, на нашем форуме стало на одного параноика больше...
Спасибо Вам, и таким как Вы - БОЛЬШОЕ! Я вполне серьезен, благодаря Вам я точно не останусь без работы.
Извиняюсь за нескромный вопрос, Вы случаем логин:пароль admin:admin не считаете достаточной мерой безопасности? :)))
Нет, Вы не подумайте, я не язвлю, а лишь пытаюсь ВЕРНО классифицировать собеседника, если можно так выразиться (с Вашего позволения, разумеется)...
- Для комментирования войдите или зарегистрируйтесь
не считаете достаточной мерой безопасности?
Нет, не считаю, ставлю нормальной длины и сложности.
Но считаю, что прятать ссылку логина это черезчур, так как:
1. Брут по http дело не быстрое
2. Брут по http дело такое которое тяжело не заметить
3. Если кому-то надо вас сломать, то вас сломают и без логина
И вообще по поводу прятанья ссылки логина и других якобы "супер-антихак средств", Dan, не так давно, в аналогичном топике рассказал своё мнение, я его мнение полностью разделяю.
Я рад, что благодаря мне вы не останетесь без работы, но всё же, даже если переопределять путь логина, то делать это стоит своим модулем, так как ваш способ затрагивает .htaccess, который может быть изменён во время обновления системы, а во-вторых требует модуль path, который не у всех может стоять. Недрупальский у вас метод решения задачи. Так что, товарищ, лучше работать над собой, нежели хвалится что благодаря таким я, вы останетесь без работы
- Для комментирования войдите или зарегистрируйтесь
Мало того что модуль 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 -> Запрет
--
Уважаемые читатели! ПОМНИТЕ! Большинство взломов происходит по причине НЕДОСТАТОЧНЫХ мер безопасности! НО(!), здравый смысл никто не отменял. Если Вы действительно понимаете что делаете (как специалист), не слушайте других, делайте так, как считаете нужным в конкретной ситуации! (А ОПЫТ Ваших коллег - всегда имейте в виду).
- Для комментирования войдите или зарегистрируйтесь
Эм... И в чём порядок надёжности? Вы знакомы с hook_menu_alter() к примеру?
- Для комментирования войдите или зарегистрируйтесь
Эм... И в чём порядок надёжности? Вы знакомы с hook_menu_alter() к примеру?
Да, конечно знаком, речь о том, что кол-во элементов задействуется меньшее, поймите, даже PHP в этом случае не задействуется. Повторюсь, до hook_menu_alter() программный путь ДЛИННЕЕ и соответственно вероятность ошибки (потенциальная) - ВЫШЕ.
Оценка безопасности всегда измеряется вероятностными характеристиками.
В конце концов я ТОЛЬКО пердложил тем, кому это будет нужно решение. При этом никого не критиковал и не претендовал на звание "решение года", "панацея"...
Напишите СВОЙ модуль, поручитесь за него и выложите для загрузки Ваш труд для сообщества.
Есть золотое правило: критикуя - предлагай.
Мы с Вами по-разному смотрим на одни и те же вещи. Никому не в обиду, но я 6 лет учился в университете и получил диплом гос. образца по специальности 075200 "Компьютерная безопасность". Я - применяю полученные знания на практике, по крайней мере стараюсь это делать.
И пусть меня лучше осудят за излишнее стремление защитить систему от взлома, чем посмеются над неприятными мерами.
- Для комментирования войдите или зарегистрируйтесь
Да, конечно знаком, речь о том, что кол-во элементов задействуется меньшее, поймите, даже PHP в этом случае не задействуется. Повторюсь, до hook_menu_alter() программный путь ДЛИННЕЕ и соответственно вероятность ошибки (потенциальная) - ВЫШЕ.
Я не понял, вы оптимизируете главную страницу? Если у вас такой сумашедший путь, то его набирать будут единицы пользователей - какой смысл в измерении длины и о какой ошибке речь?
Оценка безопасности всегда измеряется вероятностными характеристиками.
Вы теории где-то начитались? Почитайте практику. На моём опыте друпал ещё ни разу не был сломан (если не считать случаев "усиления" безопасности вроде вашего, при котором были допущены фатальные ошибки), а вот через окружение - множество раз.
НО(!), здравый смысл никто не отменял.
Именно. Только Ваше решение явно не от здравого смысла, а от банальной параннои. Что _ещё_ Вы сделали, чтобы обезапасить себя от атак?
- Для комментирования войдите или зарегистрируйтесь
но я 6 лет учился в университете и получил диплом гос. образца по специальности 075200 "Компьютерная безопасность". Я - применяю полученные знания на практике, по крайней мере стараюсь это делать.
А я учился на очном отделении, на год меньше, мне, наверно, не стоит хвалится? Диплом в наше время не более чем бумажка. И имею опыт работы достаточный, вас быстрее сломают с тылов, через FTP, SSH, украдут пароли сохранённые в клиенте. Чем будут брутить по http
- Для комментирования войдите или зарегистрируйтесь
Всем спасибо за критику, но я не склонен к битию себя в грудь и рассказах о покоренных вершинах.
Если ЭТО никому не интересно и кажется параноидальным - пожалуйста, считайте что я преклонился перед Вашим опытом, я не обеднею от этого! :)
Возможно я не в том месте разместил своё скромное мнение (опять-таки IMHO, конечно - извините за каламбур).
Модераторы, если Вам угодно - удалите ради бога этот пост, пока меня не обвинили в чем-нибудь криминальном! И если, не дай бог, я оскорбил кого-то заявлением о своем образовании...Уважаемые "самоучки" - я знаю по меньшей мере десяток "самоучек" (на мой взгляд это название грубовато, но я не располагаю другим столь же кратким и исчерпывающим названием) которые дадут фору уважаемым профессорам-практикам.
Вы теории где-то начитались? Почитайте практику. На моём опыте друпал ещё ни разу не был сломан (если не считать случаев "усиления" безопасности вроде вашего, при котором были допущены фатальные ошибки), а вот через окружение - множество раз.
Если Вы не заметили, я не пытаюсь осквернить чей-то опыт. Приведите пример, в котором эти жалкие мои пару строк в .htaccess послужат брешью?
Я безмерно счастлив что у многих из уважаемых кодеров есть "бумажки" об образовании, это важно для Моей страны, это в целом повышает уровень образованности нации. Жаль только что субъективное мнение зачастую главенствует над объективным.
--
Возможно я попросту не умею "достучаться" до определенной категории граждан, но по крайней мере хоть кто-то не жалеет времени на критику, а это порой бывает важно и нужно.
--
Прошу меня извинить, но я вынужден прекратить комментировать этот пост, ну конечно за исключением случая появления здесь интересного (для меня) каммента. ;)
- Для комментирования войдите или зарегистрируйтесь
Вот Вам и специалисты. Критики-море, куча обид, да вот только ошибку никто из говорливых не поправил за 2 дня. Чтож, промолчу, и без слов ВСЁ ясно.
Да-да-да. Мы никуда не годимся :)
PS: ещё user/register есть. Да и запрещать надо /user* если уж на то пошло. Скоро будет стабильная версия high security drupal? )))
- Для комментирования войдите или зарегистрируйтесь
Скоро, скоро, здравомыслящие вы мои... Когда выйдет первая бета - позову вас всех в тестеры, потешусь.
- Для комментирования войдите или зарегистрируйтесь
Мбугага
- Для комментирования войдите или зарегистрируйтесь
Большое спасибо, я спрятала также папку admin.
- Для комментирования войдите или зарегистрируйтесь
Молодец, что спрятали, можете теперь спать спокойно, забить на обновление модулей и движка и поставить пароль 123
- Для комментирования войдите или зарегистрируйтесь
Большое спасибо специалисту по безопасности, улыбнул многократно. Хотя человек, возможно, делает сайт для какого-нить правительства. Страшно подумать, какие будут его следующие, после обеспечения безопасности, действия.
PS Всегда считал лучшей защитой от взлома ежедневный бэкап.
- Для комментирования войдите или зарегистрируйтесь
PS Всегда считал лучшей защитой от взлома ежедневный бэкап.
Это не защита, а лечение последствий.
- Для комментирования войдите или зарегистрируйтесь
logintoboggan насколько помню позволяет ограничить количество попыток входа, и таймаут между попытками увеличивает. этого не достаточно?
я бы спрятал ссылку не на логин, а на сайт ^^)
- Для комментирования войдите или зарегистрируйтесь
Зачем прятать? Лучше вообще не выкладывать сайт. Нет сайта -> его никто не взломает -> нет цели для атаки -> не надо защищать
- Для комментирования войдите или зарегистрируйтесь
Запрос -> Запрет =)
- Для комментирования войдите или зарегистрируйтесь
Это не защита, а лечение последствий.
Сайт не Родина, фанатизм тут не к чему.
- Для комментирования войдите или зарегистрируйтесь
Постебались над человеком, причем на ровном месте
- Для комментирования войдите или зарегистрируйтесь
Молодец, что спрятали, можете теперь спать спокойно, забить на обновление модулей и движка и поставить пароль 123
Обновляет и модули и движок. И почему Вы решили, что не будет обновлять? Какая связь?
А отсечь лишнюю попытку посмотреть админку я думаю стоит.
- Для комментирования войдите или зарегистрируйтесь
http://www.whitehouse.gov/user - здесь, как видим, доступ для авторизации закрыт.
А, по-моему, статья неплохая. И весело было почитать комменты :)
Но в случаях, когда на сайте будут авторизоваться пользователи, смысла особого в скрытии /user не может быть, поскольку ссылка на страницу авторизации будет общедоступной.
Но, ежедневно боты пытаются или авторизоваться на сайте на /user, /user/login, или зарегистрироваться на user/register. И чем плохо, если мы для них скроем эти алиасы?
- Для комментирования войдите или зарегистрируйтесь
И чем плохо, если мы для них скроем эти алиасы?
Вопрос не в том, скрывать или нет, а в том, как это делать. Человек удалил гланды через уши, вместо использования стандартных механизмов, типа hook_menu_alter и custom_url_rewrite_inbound/outbound.
Исправляю:
RewriteCond %{REQUEST_URI} (/user(/?)|user/login(/?))$
RewriteRule ^(.*)$ $1 [L,F]
Так и не исправлено с учётом что есть ещё user/register.
Скоро, скоро, здравомыслящие вы мои... Когда выйдет первая бета - позову вас всех в тестеры, потешусь.
Ну когда же?
- Для комментирования войдите или зарегистрируйтесь







Комментарии