Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用SQL锁定登录尝试_Sql_Node.js_Postgresql_Security_Captcha - Fatal编程技术网

如何使用SQL锁定登录尝试

如何使用SQL锁定登录尝试,sql,node.js,postgresql,security,captcha,Sql,Node.js,Postgresql,Security,Captcha,我不想被服务器强迫使用验证码,但我不想使用验证码,因为它们对用户不友好/我不想依赖另一家公司-因为我不打算实施我自己的验证码系统 我曾想过创建一个具有以下结构的尝试表: ________________________________________________________________ | IP | ATTEMPTS | LOCK | |‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾

我不想被服务器强迫使用验证码,但我不想使用验证码,因为它们对用户不友好/我不想依赖另一家公司-因为我不打算实施我自己的验证码系统

我曾想过创建一个具有以下结构的
尝试
表:

________________________________________________________________
|         IP         |      ATTEMPTS      |        LOCK        |
|‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾|
|       1.1.1.1      |         0          |          2         |
|        ....        |        ....        |        ....        |
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾          Yes I had fun making this
在重置为0和0之前,让用户尝试5-10次 将锁定时间增加2倍-以分钟为单位

这是锁定暴力的好方法吗

我的服务器上有这样的逻辑:-抽象

....
* on request to server do below  *

db.query("SELECT * FROM attempts WHERE IP= *REQUEST.IP* ",function(result){
    if (result.rows.length > 0 && result.rows[0].attempts > 5) {
        if (CheckIfExpired(results.rows[0].lock)) {
            if (loginFail) MultplyLockBy2();
            else RemoveFromAttemptsTable();
        } else res.status("403").send("You're locked out");
    } else normalLoginAttempt().ifFal(add1toAttempts());
....
我觉得有一种更有效的方法可以在SQL中实现这一点,我是SQL的新手。 (我正在使用postgresql)

看了这个之后,我猜我还需要一个开始时间字段,这样我就可以计算锁何时过期

ASP.net+Njinx/Apache+会话+…!=node.js+sql

使用。HTTP请求应返回401(未经授权),fail2ban筛选器应与连续401的访问日志相匹配,并禁止调用方10分钟左右(在IP防火墙级别)

正如您所注意到的,答案与SQL、postgresql和nodejs无关

使用。HTTP请求应返回401(未经授权),fail2ban筛选器应与连续401的访问日志相匹配,并禁止调用方10分钟左右(在IP防火墙级别)


正如您所注意到的,答案与SQL、postgresql和nodejs无关

它是由服务器控制,还是由fail2ban程序外部处理?您问题中的
服务器是谁?
,就像我的节点应用程序一样;我已经阅读了这个页面,似乎我要更新一个日志文件,fail2ban会自动处理它?这是一个很小的失败使用匿名proxy@NeilMcGuigan机器人和爬虫不会费心伪装。任何应用程序都会受到不断的扫描和暴力攻击,如果你查看访问日志,就很容易看到这一点。处理试图强制应用程序的专用攻击不会被用户/密码禁令阻止。它是由服务器控制还是由fail2ban程序外部处理?您问题中的
服务器是谁?就像在我的节点应用程序中一样;我已经阅读了这个页面,似乎我要更新一个日志文件,fail2ban会自动处理它?这是一个很小的失败使用匿名proxy@NeilMcGuigan机器人和爬虫不会费心伪装。任何应用程序都会受到不断的扫描和暴力攻击,如果你查看访问日志,就很容易看到这一点。处理试图强制应用程序的专用攻击不会被用户/密码禁令阻止。@NeilMcGuigan这绝对不是ASP.Net问题的重复。在我看来,已接受的答案(您的)实际上相当糟糕,因为它涉及为未经验证的呼叫写入状态(即,攻击者可以在每次调用时使用不同的用户名填充您的磁盘)我会考虑Windows PaltFras上的答案,其中的代码“<代码> Ful2BAN < /Cord>”是不容易获得的。对于一个在Linux环境中运行的NoDEJS应用程序,已经有更好的解决方案准备好了,测试了,被广泛使用了。我真的很困惑。我想我可以实现Faul2BAN;我将实现总是允许U的cookie。ser在没有验证码的情况下连接回他们的帐户;我也可能在锁定的同时使用验证码;这是一个好的解决方案吗?您在生产应用程序中实现了什么来阻止这种行为???@NeilMcGuigan这绝对不是ASP.Net问题的重复答案(您的)在我看来,这实际上相当糟糕,因为它涉及到为未经验证的调用写入状态(即,攻击者可以使用每次调用的不同用户名填充磁盘)我会考虑Windows PaltFras上的答案,其中的代码“<代码> Ful2BAN < /Cord>”是不容易获得的。对于一个在Linux环境中运行的NoDEJS应用程序,已经有更好的解决方案准备好了,测试了,被广泛使用了。我真的很困惑。我想我可以实现Faul2BAN;我将实现总是允许U的cookie。ser在没有验证码的情况下重新连接到他们的帐户;我也可能在锁定的同时使用验证码;这是一个好的解决方案吗?您在生产应用程序中实现了什么来阻止这种行为??