- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Возникла потребность в организации доступа к сервисам, расположенных на поддоменах, пользователям зарегистрированным на главном сайте!
Помогите реализовать функцию:
Пользователь логинится на главном сайте и переходя на поддомен, он не должен вводить заново свои данные, т.е. нужно сделать, чтобы авторизация на главном сайте действовала и на поддоменах.
P.S.: Cпасибо заранее за помощь...
Php сессия, почитай об этом. И кстати на каком языке написан сайт?
В сообщение (на страницу) "вы успешно залогинились", вставляем:
<link rel="stylesheet" type="text/css" href="httр://домен1/loginzz.php?u=имя_юзера&p=хеш_пароля&t=время_unix_time">
<link rel="stylesheet" type="text/css" href="httр://домен2/loginzz.php?u=имя_юзера&p=хеш_пароля&t=время_unix_time">
...
Скрипт "loginzz.php" на доменах делает следующее:
1. Ищет в базе юзера по имени
2. Создаёт хеш из данных "пароль юзера" и "время из переменной t="
3. Сравнивает время из переменной t= с текущим и если разница более, например 60 сек, то отворот поворот (просто даёт на вывод пробел).
4. Сравнивает хеш данный нам из переменной p= с тем что получилось на шаге 2
5. Если хеш верный, то ставит куку и выдаёт пробел в вывод.
Естественно то, что логинит на первом домене, должно генерировать хеш тоже из данных:
"то_что_она_отдаст_в_переменной_t и пароль_юзера"
В итоге ставятся куки для всех доменов при логине на любом.
P.S. И будь проклята любая сессия (я никогда студентом и поисковиком не был, а студенты и поисковики поймут).
Vladimir_Rublin, Интересный вариант авторизации :), только цивилизация придумала спички(сессии), а вы все кремнием пользоваться предлогаете...
На счет живости ума, вы не подумали что сессию можно включить только передованием в куку, без переменной в урле? Тогда с поисковиками проблем не будет. А минусы ставить не разобравшись в предмете не хорошо.
To: sun
Не переходя на обсуждение личностей и моего отзыва скажу:
Суть предмета:
передать куку между доменами.
А сделать это очень не просто, ибо с одного домена куку другого домена не видно.
Иначе бы уже давно 99% форумов и прочих сервисов в сети, взломали.
Вопроса о том как вообще сделать авторизацию (через сессии, через самопал, через стандартную веб-авторизацию) топикстартер не поднимал.
P.S. Старайтесь не думать о документации. :)
P.P.S. Пока цивилизация придумывала спички, я уже давно пользовался плазменными зажигалками, пока цивилизация изобретала компьютеры на радиолампах, на меня уже давно работали роботы, когда цивилизация построит Имперские корабли и Лорд Вэйдор восстанет, я уже буду мёртв.
В подтверждение сказанному выше, не буду приводить тысячи исходников написанного мной софта, просто процитирую из однажды сказанного:
Что я уже только в жизни не писал...
Текстовый редактор, графический редактор, язык программирования, поисковую машину, собственную файловую систему, операционку даже садился писать и почти написал!!!
Почему в мире нет того, что мне надо вовремя, и всё приходится делать самому? Может я не в то время родился?
... Наверно что бы заверштьь цикл, надо мне написать браузер на perl и DVD плеер на JavaScript. :(
Vladimir_Rublin!
спасибо, интересная идея!
sun, сайт написан на php.
использование сессий недопустимо на этом сайте...
Что мешает открыть фрейм на страницу авторизации что бы получить все данные с сессии или подключить
<link rel="stylesheet" type="text/css" href="httр://домен1/loginzz.php">
так.
Текстовый редактор, графический редактор, язык программирования, поисковую машину, собственную файловую систему, операционку даже садился писать и почти написал!!!
И где можно посмотреть? Просто интересно.
To: sun
да понятно что можно открыть фрейм, или иным способом что-то вызвать с домена на который надо проставить куку.
Другое дело, что если вызвать без параметров, как Вы предлагаете:
<link rel="stylesheet" type="text/css" href="httр://домен1/loginzz.php">
это ничего не даст.
Вызываемый скрипт не получит ни куки ни каки вызывающего сайта.
Я же говорю:
Куки между доменами не передаются вообще никак.
Сайт superpisa.com.ru никогда не увидит куки которые поставил сайт mail.u как бы он не вызывал фреймы, или что там ещё.
Впрочем, просто попробуйте.
Если есть 2 домена, даже суб домена, то сразу поймёте (порегайт 2 сайта на любом хостере, на один загрузите html которая JavaScrip-ом ставит куку, а на другом показывает и попробуйте).
Кстати в MSIE передаётся кука от главного домена на суб домен, то есть на домене:
jopki.siskizapisiski.com.ru
видно куку с домена:
siskizapisiski.com.ru
но это только в MSIE, да и то это дыра.
Что это дыра, становиться понятно, когда речь заходит например, о таком сайтике, как: narod.ru
P.S. Да я же сказал, что не будут приводить исходники писанные мной, не буду давать ссылки на готовое. Не к чему это. Вы пошутили про спички и кремни, вот и считаем что я пошутил. К чему что-то смотреть из праздного любопытства? Да и кто знает, может вы какую мою софтину используете и быть может в повседневной работе, вот только не всё ли равно кто её писал? Важно что бы работала хорошо. А так, будут вопросы в тему по ASM, C/C++, perl, JavaScript - я с радостью и по мере свободного времени, отвечу.
То что кука между доменами не передается я знаю. Но когда браузер, например, через фрейм обращяется к главному домену разве, он не обычный хедер посылает где прописывается кука и все что должно находиться в запросе?
При условии что человек залогинился на главном домене и ему поставлена кука.
To: sun
Давайте по порядку:
1)
Странице на которой этот фрейм, какой прок от самого фрейма?
Пусть даже в нутри фрейма у нас загрузился некий документ как для авторизованного?
Страница на которой фрейм по прежнему осталась не авторизована.
Фрейм это формально 2 разных окна браузера.
Одно - со страницей на которой фрейм;
Второе - содержимое фрейма.
В любом нормальном браузере, это просто два не связанных разных окна браузера.
Мы даже не можем JavaScript-ом ничего писать или читать из документа фрейма в документе его создавшем.
2)
Таскать фреймы, испольнать JavaScript не лучший метод, для такой простой процедуры как: "проставить куку на всех доменах при авторизации на любом из них".
P.S. Как только Вы всецело примите идею о моём мировом господстве, и осознаете, что даже любой сапожник с планеты Шолтроксо (мой "земляк"), умнее любого академика с планеты Земля (вашего земляка), Вам станет намного проще принять и понять то, что я Вам сообщаю выше по тексту :)
А почему нельзя так:
if ( ($_SERVER[PHP_AUTH_USER] != 'login') || ($_SERVER[PHP_AUTH_PW] != 'password') ) {
header("WWW-Authenticate: Basic realm=\"Введите логин и пароль доступа\"");
header("HTTP/1.0 401 Unauthorized");
die("Доступ закрыт!");
}
И всех делов ;) Пока окно броузера открыто - там хоть 10 поддоменов ;)