В настоящее время я использую этот метод для отправки имени пользователя и пароля на мой бэкэнд и проверки правильности в базе данных. код здесь:Как мне отправить свое имя пользователя и пароль на сервер в Java?
@GET
@Path("/login/{username}/{passWord}")
public Boolean Login(@PathParam("username") String username, @PathParam("passWord") String password) {
LoginService login = new LoginService();
boolean response = login.LoginCheck(username, password);
return response;
}
И в LoginService Я использую этот метод для проверки ::
public class LoginService {
private int count;
public LoginService() {}
public boolean LoginCheck(String uname, String password) {
SessionFactory factory = new Configuration().configure().buildSessionFactory();
Session session = SessionUtil.getSession();
String hql = "select reg.name,reg.password from Employee as reg where reg.name='" + uname + "' and reg.password='" + password + "'";
Query query = session.createQuery(hql);
for (Iterator it = query.iterate(); it.hasNext();) {
it.next();
count++;
}
System.out.println("Total rows: " + count);
if (count == 1) {
return true;
} else {
return false;
}
}
}
Я хочу знать, есть ли другой безопасный способ отправить имя пользователя и пароль? Как здесь, имя пользователя и пароль отображаются в URL-адресе.
Спасибо заранее.
Никогда не храните пароли в текстовом формате !!! Хеш (с солью) пароль на клиенте. Отправьте его на сервер и проверьте, что хэш против сохраненного хэша –
Отправка пароля в текстовом формате не является проблемой, если использование * безопасного соединения * (например, HTTPS) - отправка «сохраненного хэша» с клиента обычно менее безопасна, поскольку то хэш * становится * незашифрованным паролем. В бэкэнд следуйте стандартным правилам управления и хранения паролей (с действительными алгоритмами хэша, солью, разделением принципов безопасности и т. Д.) - эта тема была избита до смерти, и поэтому я голосую как слишком широко. – user2864740