Недавно мне пришлось защищать систему административного входа в систему на веб-сайте, и я хотел бы получить второе мнение о методе, который я использую, поскольку безопасность имеет тенденцию извлекать пользу из вторых мнений.
Детали реализации: Linux, Debian, Mysql, Php
Система белых списков IP-адресов
Части:
в базе данных: имя пользователя, пароль, адрес электронной почты, IP-адрес, белый список IP-адресов
предоставлено пользователем: имя пользователя, пароль
предоставляется клиентом: текущий IP-адрес
В дополнение к требованию правильного имени пользователя и пароля, ip системы, к которой вы подключаетесь, должен быть в белом списке, чтобы разрешить вход в систему. Таким образом, логика системы выглядит следующим образом:
- если ip не занесен в белый список: вы не можете войти в систему, вы должны убедиться, что ip.
- Проверьте ваш текущий ip: перейдите на страницу, введите имя пользователя, вы получите «Мы проверим это имя пользователя [someUsername], если оно существует, и вы получите автоматическое электронное письмо для этой учетной записи напрямую». Письмо с подтверждением отправляется по электронной почте на файл для этой учетной записи, если он существует и активен. В противном случае он просто отобразит сообщение и ничего не сделает.
Письмо с подтверждением: просто имеется ссылка с закрытым ключом, который совпадает с ключом в проверочной базе данных, ссылки на сайт, ссылки на страницы проверяют ip для этой записи в базе данных.
если ip внесен в белый список: после внесения в белый список правильные комбинации имени пользователя и пароля принимаются для входа в систему как обычно, неправильные - отклоняются.
Это система. Он выглядит немного похожим на метод, который банки используют для проверки устройств, хотя и не идентичен, поэтому, возможно, он нуждается в рефакторинге Любой совет?