Так что я просто возился с JSP и пытался создать форму для входа, теперь, когда я вхожу в «тест» как имя пользователя и «проверяю» как пароль, он должен войти в систему , так как эта учетная запись создается в базе данных. Вместо «входа в систему» он просто показывает мне текст «Неверное имя пользователя: тест», а затем в новой строке значение базы данных, которое было возвращено из метода, который я написал, который является «тестом».Сравнение строк верно, но выполняется иначе либо в любом случае
Пожалуйста, помогите мне с этим вопросом, это действительно начинает беспокоить меня.
Это мой код:
String userID = request.getParameter("username").trim();
String pass = request.getParameter("password").trim();
String corrUserID = MySQL.getString("SELECT username FROM users WHERE username='" + userID + "'", "username").toString();
String corrPass = MySQL.getString("SELECT password FROM users WHERE username='" + pass + "'", "password").toString();
if(corrUserID != "String" && corrPass != "String" && userID != "Username" && pass != "Password"){
if(userID == corrUserID){
if(pass == corrPass){
out.println("Logged in!");
response.sendRedirect("index.jsp");
}else{
out.println("Incorrect password.");
}
}else{
out.println("Incorrect username: " + userID + "<br/>" + corrUserID);
}
}else{
out.println("Please enter a valid username and password.");
}
** Не храните пароли в текстовом формате ** – SLaks
У вас есть уязвимость в SQL-инъекции. – SLaks
Не препятствуйте пользователям иметь пароли с ведущими или конечными пробелами. – SLaks