2011-05-02 2 views
0

Я внедрил логин на сайте (не использовал asp.net default). Когда пользователь вошел в систему, я сохраняю его ip в db. Если он ничего не делает в X минут, его ip удаляется. Всякий раз, когда пользователь пытается ввести ограниченную страницу, я проверяю, находится ли его ip на db. Если так, он может продолжить. Проблема заключается в том, что если вошедший в систему пользователь находится в сети Wi-Fi или в любой другой общей сети, все остальные пользователи будут иметь один и тот же ip, и это плохо. Как я могу решить эту проблему? Куки - лучший ответ?Безопасность веб-архитектуры входа?

+0

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

+0

Но его хорошая база, не так ли? – Nir

ответ

1

Как войти в систему? Имя пользователя Пароль? Я предполагаю, что пароль хранится как соленый хеш в базе данных, так почему бы не передать cookie обратно с именем пользователя и хешированным паролем? Всякий раз, когда они пытаются получить доступ к запрещенной зоне, проверьте, что имя пользователя/пароль хешируется вашей базой данных. Удостоверьтесь, что санатизируйте значения cookie, прежде чем проверять их против вашей базы данных, чтобы предотвратить инъекцию. Или, в зависимости от языка, в котором он находится, вы можете использовать отслеживание сеанса.

+0

И полагаться только на куки? Или объединить его с моим IP-методом ?; я использовал его плюс sessionid – Nir

1

Я принимаю теги, которые вы используете WebLogic Server для своего решения, хотя ваш комментарий об ASP.net заставляет меня задуматься. (хотя на вопрос не заданы теги ASP)?

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

http://download.oracle.com/docs/cd/E13222_01/wls/docs81/webapp/web_xml.html#1017275

Везде, где это возможно, когда ценной бумаги участвуют, я всегда предпочитаю, чтобы избежать прокатки мое собственное решение. Просто не достаточно умный, чтобы доверять ему. :-)

Извините, если я не в своем понимании здесь.

+0

Я извиняюсь, я попытался пометить weblogin, я увидел, что это был weblogic и изменил его. Возможно, я его не спас. Я не отмечал asp.net, потому что его идея имеет значение, а не язык. – Nir

Смежные вопросы