如何使用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在没有验证码的情况下重新连接到他们的帐户;我也可能在锁定的同时使用验证码;这是一个好的解决方案吗?您在生产应用程序中实现了什么来阻止这种行为??