【问题标题】:Is HyperSQL / HSQLDB database resistant to password attacks?HyperSQL / HSQLDB 数据库能抵抗密码攻击吗?
【发布时间】:2015-09-25 11:23:21
【问题描述】:

HyperSQL / HSQLDB 能抵抗密码攻击吗?本场景使用数据库:

DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/somedb", "SA", "some_password");

比方说,如果某个黑客试图在一秒钟内使用无效密码连接 1000 次,会发生什么? HyperSQL 会阻止该用户吗? HyperSQL 数据库是否有一些针对密码攻击的安全方法——例如某些失败后的登录延迟?

【问题讨论】:

    标签: security hsqldb password-protection 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 用户名更改为随机生成的字符串,这样暴力攻击需要永远(数万亿次尝试)才能成功。
    猜你喜欢
    • 1970-01-01
    • 2014-09-11
    • 2010-09-30
    • 2017-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多