Security 限制基于IP的登录尝试-好主意?

Security 限制基于IP的登录尝试-好主意?,security,login,passwords,ip,Security,Login,Passwords,Ip,我的一个客户有一个站点,您只需使用密码(没有用户名)即可登录。没有用户,但是有一个用户类系统。因此,admin类有特定的密码,editor类有不同的密码等。当您登录时,将根据密码检测您的用户类 我知道这看起来很不安全,但客户认为它很简单,他喜欢这样(我没有建立最初的网站) 将每个IP的登录尝试次数限制在每小时5次是一个好主意吗?这会显著提高安全性吗?我相信攻击者很难一次又一次地获得新的IP限制每小时的登录尝试次数应该没有坏处。这将使它更加安全,但请记住,现在使用代理服务器使用不同的ip地址是相当

我的一个客户有一个站点,您只需使用密码(没有用户名)即可登录。没有用户,但是有一个用户类系统。因此,admin类有特定的密码,editor类有不同的密码等。当您登录时,将根据密码检测您的用户类

我知道这看起来很不安全,但客户认为它很简单,他喜欢这样(我没有建立最初的网站)


将每个IP的登录尝试次数限制在每小时5次是一个好主意吗?这会显著提高安全性吗?我相信攻击者很难一次又一次地获得新的IP

限制每小时的登录尝试次数应该没有坏处。这将使它更加安全,但请记住,现在使用代理服务器使用不同的ip地址是相当容易的


你也可以认为这是相反的。如果你的客户总是从同一个ip使用这个,你可以把ip列入白名单而不是黑名单

限制每小时的登录尝试次数应该没有坏处。这将使它更加安全,但请记住,现在使用代理服务器使用不同的ip地址是相当容易的


你也可以认为这是相反的。如果你的客户总是从同一个ip使用这个,你可以把ip列入白名单而不是黑名单

这不是一个好主意,攻击者更改其IP非常简单,因此这不会给您带来额外的安全性。但是当你在一个企业网络后面时,所有的机器都会有相同的外部地址,所以在实践中,你可能会遇到一些合法用户的问题


提高安全性的最佳解决方案是创建某种白名单

这不是一个好主意,攻击者更改其IP非常简单,因此这不会给您带来额外的安全性。但是当你在一个企业网络后面时,所有的机器都会有相同的外部地址,所以在实践中,你可能会遇到一些合法用户的问题


提高安全性的最佳解决方案是创建某种白名单

这将提高安全性,但不如引入用户名参数。攻击者的每次尝试都以所有用户(类)为目标,这大大增加了每次都有正确猜测的机会,而且您也无法知道您的哪些类是目标

此外,您当前的方法禁止使用可提高安全性的密码,因为系统中的每个密码都将以不同方式散列。这是因为没有用户名记录可供选择适当的salt,这本身将削弱安全性

你该怎么办 您应该引入一个username字段——为了保持简单,这可以是类的名称

记录每次尝试的远程IP和用户名,您应该限制从同一IP地址或针对同一用户名允许的尝试次数

如果来自同一IP或针对同一用户名的错误尝试超过您设置的阈值,则应通过引入会阻碍攻击的人为延迟来限制响应。如果从同一IP或针对同一用户名同时进行尝试,则此延迟应跨越所有线程-然后应串行处理这些请求,因为这将减慢使用多个线程同时进行HTTP连接的暴力尝试


你建议每小时限制5次,这只会让最随便的攻击者感到不安。正如其他答案所提到的,获得新的IP对于坚定的攻击者来说是一项微不足道的任务,并且需要比IP更多的东西来正确保护您的系统,并在任何时候将攻击范围减少到单个资源(用户)。

这将提高安全性,但不如引入用户名参数。攻击者的每次尝试都以所有用户(类)为目标,这大大增加了每次都有正确猜测的机会,而且您也无法知道您的哪些类是目标

此外,您当前的方法禁止使用可提高安全性的密码,因为系统中的每个密码都将以不同方式散列。这是因为没有用户名记录可供选择适当的salt,这本身将削弱安全性

你该怎么办 您应该引入一个username字段——为了保持简单,这可以是类的名称

记录每次尝试的远程IP和用户名,您应该限制从同一IP地址或针对同一用户名允许的尝试次数

如果来自同一IP或针对同一用户名的错误尝试超过您设置的阈值,则应通过引入会阻碍攻击的人为延迟来限制响应。如果从同一IP或针对同一用户名同时进行尝试,则此延迟应跨越所有线程-然后应串行处理这些请求,因为这将减慢使用多个线程同时进行HTTP连接的暴力尝试


你建议每小时限制5次,这只会让最随便的攻击者感到不安。正如其他答案所提到的,获得新的IP对于坚定的攻击者来说是一项微不足道的任务,并且需要比IP更多的东西来正确保护您的系统,并在任何时候将攻击范围缩小到单个资源(用户)。

如果两个用户选择相同的密码会发生什么?或者用户无法选择自己的密码?此外,攻击者很容易更改IP。密码都是由站点管理员设置的,在登录尝试之间不应存在冲突。即使是短暂的静态延迟,至少也会降低暴力攻击的可行性,或者至少会增加成本