| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > Проверка пароля,логина.. |
| Автор: jmich 10.3.2008, 17:26 | ||||||
| У меня есть сервлет, страница jsp и класс подключения к базе данных. На странице jsp вводим логин и пароль. Как сделать проверку пароля, логина и id в базе данных? Хочу идентификацию сделать по 3-м параметрам(пароль, логин и id) jsp
|
| Автор: v2v 10.3.2008, 17:36 |
| а чего создал тему в разделе j2me ?? делаешь к базе запрос с указанным логином, паролем, ид : если вернуло одну запись : авторизация пройдена, нет - доступ запрещён. |
| Автор: jmich 10.3.2008, 17:38 |
| А на примере можно? PS Да я уже написала модератору, чтобы переместили, ошибочка вышла. |
| Автор: jmich 10.3.2008, 18:23 |
нет вы меня не поняли, мне нужно на странице jsp ввести пароль и логин, потом эти параметры передаю сервлету для проверки существуют ли такие в базе данных. Если да , то сервлет возвращает новую страницу jsp, если нет остается та же страница. |
| Автор: v2v 10.3.2008, 19:16 | ||
| ну стандартная задача. вместо getPass пишешь метод checkUser куда передаёшь логин , пароль , ид . В методе делаешь запрос
далее анализируешь респонс и делаешь редирект на другую страницу или открываешь эту же. |
| Автор: VOS 11.3.2008, 12:30 |
| Вариант, предложенный v2v годится в качестве академического примера, но в реальной жизни его надо использовать крайне осторожно. Например, если введенный пользователем логин будет такой: 1' or 1=1 or 0=0 а пароль любой, например 555 то результирующий SQL запрос примет вид: "SELECT login, password, personne_id FROM personne WHERE login='1' or 1=1 or 0=0 and password='555' " этот запрос будет выполнен успешно и Вам вероятно удастся зайти в систему не зная логина или пароля. Это простой вариант, есть и другие, более изощренные способы атаки. Лучше вызывать хранимую процедуру, или использовать переменные привязки/параметризированные запросы. Т.е. очень опасно динамически создавать строку запроса на основе данных, которые вводит пользователь |
| Автор: W0LF 11.3.2008, 13:42 |
| в jdbc например юзай PreparedStatement или экранируй все кавычки одинарные |
| Автор: v2v 11.3.2008, 14:08 |
| sql иньекция ... да это проблема ) . |
| Автор: jmich 11.3.2008, 15:01 | ||
| я сделала так, но еще не проверила работает или нет... правильно ли так?
|
| Автор: jmich 11.3.2008, 17:54 | ||
почему не компилирует, в чем ошибка? |
| Автор: AntonSaburov 11.3.2008, 18:15 |
| Хорошо бы сообщение об ошибке все-таки писать. А то рыскать по всему коду и запускать его лениво |
| Автор: jmich 11.3.2008, 18:25 | ||
| нет никаких сообщений об ошибке :( если сервлет забирает параметры от jsp (пароль, логин, ид) String p = request.getParameter("p"); String l = request.getParameter("l"); String idi = request.getParameter("id"); как мне их получить здесь ?
|
| Автор: ecologist 12.3.2008, 10:28 |
| Ну видимо как-то передать из сервлета в экземпляр объекта. Я чтото не врубаюсь в проблему - ну есть сервлет. Так и вызывай из него свой объект с нужными параметрами. И работай на здоровье. |
| Автор: mbasil 12.3.2008, 14:27 | ||
| Почему бы не использовать BASIC аутентификацию, то есть средствами сервера. Потому как, если выполнять собственную аутентификацию, то теряем возможность декларативного управления безопасностью. Можно для аутентификации, например, использовать такой фильтр (пример взят у SUN):
Добавлено через 10 минут и 55 секунд Кстати проверку в базе можете делать прямо из фильтра, хотя это нехорошо - надо все-таки начать работать с пулами подключений и источниками данных. |