【发布时间】:2009-10-15 14:03:32
【问题描述】:
背景
一个 html 页面会要求用户输入他们的用户名和密码。这些是 MySQL 数据库的凭据(即它们将用于 JDBC 连接,因此文件中没有物理存储密码)。
在提交时将调用一个 servlet,它会尝试连接到数据库。如果可以,则凭证是正确的,并且将加载 JSP 页面。否则,将显示错误。
如果登录成功,则 Web 应用程序将使用 servlet 在数据库上执行 SQL 查询/更新并将 Java Beans 返回到 JSP 页面。
问题
出于内存目的,我猜测 JDBC 将需要关闭,这意味着后续页面将需要使用之前提供的凭据重新启动连接。显然,用户不想每次都提供密码,所以无论如何都必须存储它。如果它们存储在该会话的 Java 对象/bean 中(考虑到它必须是明文以便可以检索和使用)......它们是否容易受到攻击?将其作为文本存储在代码中是不是很糟糕?
我假设有人可以侵入会话并调用对象(如果他们知道这一点?)并提供详细信息,瞧?
还有哪些选择?
【问题讨论】:
标签: mysql security jsp servlets