![]() |
Модераторы: skyboy |
![]() ![]() ![]() |
|
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: нет Всего: 329 |
Не знаю, как бы правильно назвать тему.
Предисловие. Есть база в онлайне, служебная. PHP+MySQL. Сервер фиксирует некоторые действия пользователей, как то вход, выход, просмотр и редактирование записей и т.д. В базу можно залогинится под одним и тем же логином с разных компьютеров. Грубо говоря, работник организации может дать кому-нибудь свои логин и пароль и тот легко войдёт в базу. Сессия длится 20 минут. Как отобразить список логинов в виде таблицы, которые в базе залогинены были одновременно с двух компьютеров? Я так понимаю, что нужно сделать выборку, где IP разные, логин один и тот же + интервал времени 20 мин. Т.е. в этом интервале получились такие вот условия: разные IP. На вопрос, почему разрешён двойной логин, сразу отвечу, что даже если запретить, то пользователи могут работать попеременно. А так хотя бы можно выявить несанкционированный вход и предъявить остальным голову на палке, чтобы боялись! |
|||
|
||||
Akina |
|
||||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
Что-то такое?
Добавлено через 6 минут и 4 секунды Давай рассмотрим такой сценарий. Юзер логинится на компе А, работает 5 минут. Комп понадобился другому юзеру, который быстрым переключением пользователей грузит свой сеанс (сеанс первого - в фоне, и запаролен). Юзер переходит к компу Б и логинится оттуда... не зная, что для его головы приготовлена палка. Варианты - первый комп повис, вышел из строя, нужно выполнить срочно другую операцию, но нет времени обрывать первую, и т.п. Добавлено через 7 минут и 7 секунд Фраза не понята... она тут каким боком? Добавлено через 10 минут и 4 секунды
Нужно регистрировать пару (локальный логин - логин к БД). Проверять соответствие. А далее - использование чужих данных легко ловится, т.к. народ забывает, что тот, чей пароль они пользуют, вышел через проходную или вообще на больничном или в отгуле. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||
|
|||||
Akella |
|
||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: нет Всего: 329 |
Согласен. Мало того, если человек1 вошёл и не нажал кнопку Выход + в течение 20 минут входит человек2 под тем же логином, это фиксируется отдельно. К сожалению, бывают огрехи, т.к. человек1 может не нажать кнопку Выход, может просто закрыть браузер, может произойти обрыв связи. Т.е. не известно на 100% достоверно, действительно ли это был человек2 или всё же это человек1 снова открыл браузер, перезапустил модем и т.д. А бывает ещё, что человек1 вошёл в базу с планшета, и потом сразу же с настольного ПК. Я ж не говорю ,что голову на палку надевают моментально ![]() Потом просто разбираются с его руководителем. Пару вопросов и всё, от человека отстали. Всё не так строго, как кажется. Но очень хочется найти недобросовестных. Добавлено через 1 минуту и 20 секунд
Я имею ввиду, что если программно запретить двойной вход, то это не вариант. Можно при втором логине, в базе удалять сессию первого логина. Добавлено через 11 минут и 13 секунд
Что такое локальный логин? Логин винды или линукса? А кто ж его даст браузеру? Программист ещё как-то фиксирует код компьютера. Я не знаю, на основе каких данных это берётся, но в таблице аудита видны числа типа: 2913868958 Добавлено через 13 минут и 43 секунды доступ к базе имеют и с домашних компьютеров, с планшетов, откуда угодно, где есть интернет и браузер ![]() |
||||
|
|||||
Akina |
|
||||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
Эмм... тогда твоя затея вообще обречена на провал. Впрочем, текст запроса я тебе дал... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||
|
|||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: нет Всего: 329 |
||||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
Может, хотя при выбранном тобой подходе я в том не убеждён. Подумав, я считаю, что ты изначально неверно поставил задачу. И требуется тебе немного иное. Что тебе даёт логин? а ничего... и фиксировать (а точнее, считать инцидентами, требующими разбирательства) следует события, когда логин, от имени которого сделан запрос к данным, совпадает с логином последней аутентификации, а вот адрес - не совпадает. В сочетании с сессией (следует проверить, что при изменении IP-адреса сессия разваливается!) это будет доказательством события одновременной аутентификации с двух разных копий операционной системы. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
Т.е. что-то типа
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: нет Всего: 329 |
||||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: нет Всего: 329 |
||||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
Не понял... что в нём тебе кажется странным?
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Zloxa |
|
|||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 53 Всего: 161 |
Akina, мне говорили что лимит в подзапросах(в том числе и в ин кляузе) - нельзя ((
-------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: нет Всего: 329 |
я просто ни разу не видел такого сравнения
Добавлено @ 13:49 В общем запрос вот такой вырисовывается
записей в таблице audit_user 1,3 млн, в таблице пользователей - 1300, в operation_audit_user - 20. Запрос валит сервер. Здесь AND a1.date_operation >= :dt_start AND a1.date_operation <= :dt_end выбираю только текущий день |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 45 Всего: 454 |
Zloxa, в мускуле очень дофига чего можно из того, что нельзя... иногда в пользу, чаще во вред... зато ламерюзер-френдли.
Akella, нейтроны ты тоже ни разу не видел... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Zloxa |
|
|||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 53 Всего: 161 |
Я просто совсем недавно подобное советовал человеку. Там был не коррелированный скаляр, думал прохляет, но у него не похляло. А тут еще и коррелированный скаляр, думал ваще не попрет ![]() Правда в том случае я делал IN а не "=" - может поэтому? Это сообщение отредактировал(а) Zloxa - 4.6.2013, 14:11 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Составление SQL-запросов | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |