Возможны ли (помните меня) несколько компьютеров? - PullRequest
2 голосов
/ 07 февраля 2012

Причина, по которой я спрашиваю, bc этого сценария:

Файл cookie Запомнить меня украден.Он удаляется с украденного компьютера и помещается на компьютер злоумышленников.Все модели (у этого одного было много голосов), который я видел, просто относились бы к компьютеру злоумышленника как к взломанному компьютеру и регистрировали его.

Как можно предотвратить это?У меня есть два способа, которые не подходят.

1.) Разрешить только один компьютер «Помни меня».2.) Отслеживайте несколько компьютеров и попросите пользователя следить за тем, сколько компьютеров он запомнил.

Есть ли способ отслеживания чего-либо сложного на компьютере, например, MAC-адреса Ethernet?

РЕДАКТИРОВАТЬ ОТВЕТ:

Использовать MAC-адрес.Ниже ссылка предоставляет внешний компонент для IE и Firefox.Нужен внешний компонент для Safari.

SO Solution

ДОБАВЛЕНО ДЛЯ УТОЧНЕНИЯ:

Не IP-адреса (сложно как вто, что не может измениться)

Ответы [ 6 ]

2 голосов
/ 07 февраля 2012

Сохранить в cookie-хеше User Agent + что-то еще (например, разрешение).Может быть, не очень безопасный, но лучше, чем простой cookie с информацией обо мне и подойдет для людей с динамическими IP-адресами.

2 голосов
/ 07 февраля 2012

Меняйте куки при каждом входе в систему / посещении. Если компьютер украден, вы входите в систему, и файл cookie изменяется. Похищенный компьютер имеет старые куки-файлы, которые вышли из системы.

Если украденный компьютер входит в систему, он / она изменяет файл cookie. Реальный пользователь выходит из системы, а затем должен снова войти в систему, которая снова изменяет файл cookie.

0 голосов
/ 07 февраля 2012

Мне нравится смотреть на Windows Live Messenger в этом случае, если я вхожу в настольное приложение, а также в hotmail, я получаю уведомление о том, что я вошел более чем в 1 место - он спрашивает меня, хочу ли я выйти из системы другого места.

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

Вся эта тема для меня выглядит так, будто ты проклят, если ты это делаешь, и проклят, если ты этого не сделаешь.

Давайте сделаем шаг назад на минуту, кто может быть нападающим? Ну, на самом деле, кто угодно - например, ваш бывший муж или бывшая жена, которые знают ваши имена пользователей и пароли, он / она может легко атаковать ваш аккаунт, потому что он / она знает всю вашу информацию для начала. Вы никогда не можете полностью защитить себя, вы меняете свой пароль, но он / она, вероятно, тоже это знает!

Я прошу вас взглянуть на ваш проект и оценить, действительно ли система «Помни меня» принесет дополнительную выгоду по сравнению с любой угрозой безопасности, которую она представляет.

Теперь прямые ответы на ваши вопросы:

  1. Создайте уникальный ключ для пользователя, вставьте его в свою базу данных и запишите ключ в свой файл cookie. Когда файл cookie отправляется на сервер, вы сравниваете его с ключом в базе данных, если он совпадает. - Бинго, у вас есть доступ, если не запустить скрипт выхода из системы и уничтожить куки.

  2. Для этого каждый раз, когда вы пишете куки-файл, сохраняйте информацию в вашей базе данных против идентификатора пользователя и статуса куки-файла (например, живого или мертвого), затем каждый раз, когда вы читаете куки-файл, проверяйте его статус - если для него установлено значение «живой», просто зарегистрируйте событие и перейдите к нему, но, если для него задано значение «мертвый», вы уничтожите файл cookie и зарегистрируете его уничтожение.

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

  1. Работа с аппаратным обеспечением легче сказать, чем сделать, но это выполнимо. Самый простой способ, который я нашел, это использовать Java-апплет, который запускается локально, затем вы можете обнаружить информацию об оборудовании и отправить ее в ваше приложение для обработки. Для вашего среднего сайта я лично не думаю, что это стоит, но это выполнимо.

Другая альтернатива - обернуть ваше приложение в что-то вроде Adobe AIR , которое может определять информацию об оборудовании, с которой вы будете работать.

Надеюсь, это поможет вам.

0 голосов
/ 07 февраля 2012

Мой подход к этому был бы гибридом различных техник. Я бы использовал файлы cookie, содержащие информацию о компьютере, на котором был выполнен вход - браузер, разрешение и т. Д., А также (по умолчанию) IP-адрес. Очевидно, я мог сопоставить их с последними значениями, записанными в базе данных, чтобы убедиться, что машина с cookie не изменилась.

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

0 голосов
/ 07 февраля 2012

Вы можете установить последний запомнившийся мной ip в базу данных (или в cookie)

$_SERVER["HTTP_CLIENT_IP"]
0 голосов
/ 07 февраля 2012

Свяжите файл cookie с IP-адресом на стороне сервера?

...