Пользователь может войти только через свой компьютер в php

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

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

я читал об ip и cookie, но в обоих случаях мое требование не соответствует. потому что ip может быть изменен, а cookie может быть удален из системы.

Я также пытаюсь сделать это по mac-адресу, но пока не получаю mac-адрес пользователя в php-скрипте.

Я надеюсь, вы все понимаете, что я имею в виду. Я нахожу ответ на это с 3-го дня, но до сих пор не понимаю об этом.

если у кого есть идея, как это сделать. ответь мне как можно скорее.


person Rcreators    schedule 02.04.2012    source источник
comment
Не уверен, что это умная идея, но я думаю, что единственный способ сделать это - использовать MAC-адрес, как вы сами предложили.   -  person Bono    schedule 02.04.2012
comment
да это я знаю. но я не получил MAC-адрес в php-коде. Я нашел какой-то сценарий для этого, но он дает только MAC-адрес компьютера, на котором работает сайт, а не пользовательского компьютера.   -  person Rcreators    schedule 02.04.2012
comment
Что делать, если ПК полностью сдохнет и его нужно заменить? Что, если пользователь обновит свой компьютер? Есть просто так много обычных случаев использования, в которых пользователь будет заблокирован из своей учетной записи. Звучит как плохая идея. Если имена пользователей и пароли подходят практически для любого сайта, то почему не для вашего?   -  person deceze♦    schedule 02.04.2012
comment
Я абсолютно согласен с этим, это действительно не очень хорошая идея; нет ли способа сказать вашему клиенту, что это будет неэффективно или на самом деле контрэффективно?   -  person Bono    schedule 02.04.2012
comment
есть только зарегистрированные студенты, которые могут только просматривать класс, если студенты делятся своим паролем с другими, все могут просматривать класс. поэтому клиент хочет, чтобы пользователь мог просматривать его только со своего компьютера. также в случае повреждения ПК или взятия нового. он должен сообщить об этом администратору. поэтому администратор может изменить свой компьютер.   -  person Rcreators    schedule 02.04.2012
comment
Я не думаю, что вы также можете получить MAC-адрес клиента, но вы можете получить MAC-адрес, если клиент и сервер находятся в одной сети (используя внешние команды arp -n [linux] arp -a [win]). Или же MAC-адрес клиента перезаписывается каждым маршрутизатором между клиентом и сервером, поэтому я действительно не думаю, что это возможно.   -  person ro ko    schedule 02.04.2012
comment
Затем раздайте двухфакторную аутентификацию, например, смарт-карты или один из тех одноразовых генераторов случайных чисел, название которых я забыл. Таким образом, владелец учетной записи должен иметь физическую вещь, которая, вероятно, удержит достаточное количество людей от совместного использования учетной записи.   -  person deceze♦    schedule 02.04.2012
comment
это также хорошая идея использовать двухфакторную аутентификацию, например, программное обеспечение использует ключ. но в таком случае мне нужно сделать гораздо больше кода в системе, и на это потребуется время. также в таком случае бюджет клиента будет превышен. но для будущего проекта я постараюсь использовать физическую вещь. но прямо сейчас нужна какая-то вещь в php-коде, с помощью которой я могу ограничить пользователя для входа в систему с другого компьютера.   -  person Rcreators    schedule 02.04.2012


Ответы (1)


Основываясь на том, что вы сказали: "есть только зарегистрированные учащиеся, которые могут только просматривать занятия, если учащиеся делятся своим паролем с другими, все могут просматривать занятия. Таким образом, клиент хочет, чтобы пользователь мог просматривать его только со своего компьютера".

Вы действительно не можете предотвратить это (?). Если ученики вызывают другого ученика и показывают класс, как вы можете предотвратить это?

Один из способов затруднить обмен паролями – дать учащимся список одноразовых паролей, который содержит от 100 до 300 пар паролей и ключей. Всегда, когда студент входит в систему; запрашивается обычная пара имя/пароль, а после этого один из одноразовых паролей (дайте мне пароль номер 233, и пользователь дает этот пароль из списка). Это НЕ помешает пользователям входить в учетные записи друг друга, если они хотят поделиться одноразовыми списками паролей.

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

person raPHPid    schedule 02.04.2012
comment
Вы действительно не можете предотвратить это (?). Если ученики вызывают другого ученика и показывают класс, как вы можете предотвратить это? - да, это правда, и я спросил об этом своего клиента перед внедрением системы, и он ответил, что мы не можем ограничить их таким образом, но мы все же можем ограничить их конкретным компьютером. поэтому каждый должен добраться туда каждый раз, чтобы посмотреть. также для списка одноразовых паролей, если пользователь может поделиться своим паролем и данными, то почему он заботится о совместном использовании списка одноразовых паролей. - person Rcreators; 02.04.2012
comment
Вот и все - у вас действительно нет решения. Если я хочу показать свой рабочий стол (содержащий информацию о классе) кому-то: удаленный рабочий стол, снимки экрана, сохранение html, ... вы называете это. Вы не можете эффективно предотвратить это, если не охраняете их 24/7. - person raPHPid; 02.04.2012