現在、このメソッドを使用して、バックエンドにユーザー名とパスワードを送信し、データベースで有効かどうかを確認しています。ここ コード:私が知りたい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に反映されます。
ありがとうございました。
パスワードをプレーンテキストで保存しないでください。クライアント上のパスワードをハッシュ(salt)でハッシュします。サーバーに送信し、保存されたハッシュに対してそのハッシュをチェックしてください –
パスワードを平文で送信することは問題ありません。*セキュリティで保護された接続(HTTPSなど)を使用している場合 - クライアントからの 'stored hash'ハッシュ*は平文パスワードになります。バックエンドでは、パスワード管理と保存(有効なハッシュアルゴリズム、ソルト、セキュリティ原則の分離などを含む)の標準的なルールに従ってください。このトピックは打ちのめされており、Too Broadとして投票しています。 – user2864740