HyperSQL / HSQLDB 数据库能抵抗密码攻击吗?
Posted
技术标签:
【中文标题】HyperSQL / HSQLDB 数据库能抵抗密码攻击吗?【英文标题】:Is HyperSQL / HSQLDB database resistant to password attacks? 【发布时间】:2015-09-25 11:23:21 【问题描述】:HyperSQL / HSQLDB 能抵抗密码攻击吗?本场景使用数据库:
DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/somedb", "SA", "some_password");
比方说,如果某个黑客试图在一秒钟内使用无效密码连接 1000 次,会发生什么? HyperSQL 会阻止该用户吗? HyperSQL 数据库是否有一些针对密码攻击的安全方法——例如某些失败后的登录延迟?
【问题讨论】:
【参考方案1】:您为什么不直接在本地尝试一下?我似乎无法找到它是否对登录尝试次数有限制,但您可以尝试使用数据库的本地实例并执行以下操作:
for (int i = 1; i <= 1000; i++)
System.out.println("Trying to log in, try number " + i);
DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/fsdb", "SA", "some_password");
try
Thread.sleep(100);
catch(InterruptedException ex)
System.out.println("Sleep was interrupted.");
Thread.currentThread().interrupt();
编辑:您的数据库服务器可能不应该对来自所有外部 IP 的连接开放。
因此,如果没有理由允许所有外部 IP 连接到数据库服务器,您应该在 this guide 的帮助下创建一个白名单。
【讨论】:
是的,现在我尝试了类似的代码 - 在使用错误密码登录 100 次后 - 我可以继续 - 没有登录延迟或阻塞。所以这意味着破解HyperSQL数据库密码非常容易。也许有一些设置/属性文件可以限制登录失败等? Ernestas Gruodis:我添加了一些关于更好地保护 HSQLDB 服务器的信息。 好的,但是让我们想象一下——在计算机上安装了一些黑客的应用程序(通过打开邮件附件或其他方式),它开始破解数据库密码。然后,密码被破解后,发送网络上的数据。如果能够阻止无效的登录尝试,那就太好了。 您还可以将SA
用户名更改为随机生成的字符串,这样暴力攻击需要永远(数万亿次尝试)才能成功。以上是关于HyperSQL / HSQLDB 数据库能抵抗密码攻击吗?的主要内容,如果未能解决你的问题,请参考以下文章
无法以新用户身份连接到 HyperSQL / HSQLDB 数据库
如何在 Hypersql 数据库(HSQLDB)中选择多列但仅按一列分组?