如何防止登录API 被暴力攻击

如何防止登录API 被暴力攻击,第1张

需要限制一个账号或IP登录次数限制

第一,如果是开发API建议加入【访问频率】设置。例如,如果设置频率限制为每分钟1000次(可以是某个端口,每个ip等等),如果一分钟内超过这个限制,那么服务器就会返回 429: Too Many Attempts.响应。

第二,关于伪造IP地址的防范。你可以发送请求到对方ip地址,伪造的ip地址没有任何response

无论网站,还是App目前基本都是基于api接口模式的开发,那么api的安全就尤为重要了。目前攻击最常见的就是“短信轰炸机”,由于短信接口验证是App,网站检验用户手机号最真实的途径,使用短信验证码在提供便利的同时,也成了呗恶意攻击的对象,那么如何才能防止被恶意调用呢?

1.图形验证码:

将图形校验码和手机验证码进行绑定,在用户输入手机号码以后,需要输入图形校验码成功后才可以触发短信验证,这样能比较有效的防止恶意攻击。目前大部分应用都是采用这种方式。

2.限定请求次数:

在服务器端限定同IP,同设备,同时间范围内的接口请求次数。比如同一号码重复发送的时间间隔,一般为60或120秒;设置每个IP每天最大的发送量;设置单个手机号每天的最大发送量。

3.流程条件限定:

将手机短信验证放在最后进行,比如需要用户必须注册后,或者用不必须填写了某些条件才能进行短信验证。

4.归属地是否一致:

服务器端检查用户的IP所在地与手机号归属地是否匹配,如果不匹配则提示用户手动操作等。

5.服务器接口验证:

当用户登录成功后,返回一个由Token签名生成的秘钥信息(Token可使用base64编码和md5加密,可以放在请求的Header中),然后对每次后续请求进行Token的封装生成,服务器端在验证是否一致来判断请求是否通过。

6.采用https:

线上的api接口开启https访问,这样做的话别人抓包的难度会提高很多,而且https需要秘钥交换,可以在一定程度上鉴别是否伪造IP。

7.服务器端代理请求:

针对于网站,这也是解决跨域的方案之一,采用服务器代理可以有效的防止接口真实地址的暴露。

8.其它:

当接口存在大量肉鸡攻击的时候,攻击者也同样容易暴露意图,我们可以通过系统分析算法,让攻击者获取不到有效数据,提高攻击成本。

总结:

安全问题一直都是与攻击者之间智斗勇的问题,没有一劳永逸的解决方法,只有不断交锋,不断成长....

云服务器的使用越来越广泛,愈加受到众多企业的青睐,那么,在使用过程时如何更好的做好防护措施呢?小蚁君来说说。

1.随时检查系统安全漏洞,安装系统补丁。不管是Windows还是Linux,操作系统都会有漏洞,及时装上补丁,避免被不法分子恶意利用攻击.

2.安装并升级杀毒软件。目前网络上的病毒越加猖獗,随时会影响到网站服务器的安全,因此,系统要安装上杀毒软件来提前预防病毒的传播,并定期检查升级杀毒软件,自动更新病毒库。

3.定期对服务器数据进行备份。为预防突发的系统故障而导致的数据丢失,平时就要定期对系统数据进行备份,同时,重要的系统文件建议存放在不同的服务器上,以便系统出故障时能将损失降到最低。

4.定期对账号密码进行修改保护。账号和密码保护可以说是服务器系统的第一道防线,目前大部分对服务器的网络攻击都是从密码开始的,一旦不法分子截获了密码,那么前面所做的所有安全防护措施都将失去了作用。

5.关闭不常用的服务和端口。服务器操作系统在安装时,会启动一些不需要的服务,不仅占用了系统的资源,还会增加系统的安全隐患。因此,定期检查系统运行中的软件和服务,没有使用的就关闭掉。

做了那么多,那么要怎么样才能避免一些低级的黑客攻击呢?

小蚁君网络了一些方法以及应对的措施

常见攻击手段

1、针对网站

1.1、SQL注入

sql注入也是老生常谈了,基本上算是常识了,这种手段无非是利用后台漏洞通过URL将关键SQL语句带入程序并在数据库中执行从而造成破坏性结果。常见情况包括后台使用了的致命的字符串拼接,比如在java的jdbc中使用如下写法

String sql = "select * from t_user where username = "+username

1

如果入参username在url中被换成不怀好意的sql语句或者其他,数据库也就危险了。

localhost:8080/testproj/queryUser?username=drop%20t_user

此外,类似的mybatis的${}写法也是同样道理,最好换成#。

1.2、后台框架、协议漏洞

1.3、程序逻辑漏洞

这个就需要黑帽子们比较有耐心,去一点点找出来,举个例子,网站有效性校验。针对数值有效性,前端有进行过滤,但是网站后台没有做参数有效性校验,这时候恶意者使用F12或postman等拼装ajax请求,将dfa或者-1ad这种非法数字发送给后台,健壮性差的程序就很容易报错,异常暴露到页面上,瞬间就能让操作者知道后台使用何种语言何种框架。更严重的可能是利用程序逻辑漏洞做重复提交、越权操作等行为,因此需要开发人员注意。

1.4、CSRF攻击

http://www.huiyuan.com/account/addUser?username=god&password=123456&role=1

这个时候浏览器还携带着管理员登录的cookie因此该行为得到执行,我就获得了一个管理员用户,当然这么蠢的网站一般是不存在的,这里只是打个比方。

防范手段比较常见的是url携带token进行校验,这种手段还可以防御cookie被篡改,盗用等情况,相当的万金油。

1.5、暴力破解

直接采用密码表暴力破解方式强行登录管理员账户,这个没啥技术含量,开发人员做好验证码校验以及恶意攻击校验,频繁请求IP封禁即可。

2、针对服务器

2.1、服务器登录用户、数据库登录用户爆破

黑帽子有多种手段确定后台数据库,比如1.3中直接让后台报错,很容易就发现了后台使用的什么框架,连得啥库。又或是使用nmap 等工具直接开扫,目标服务器暴露3306端口大概率就确定是mysql了。确认了数据库类型以及端口接下来就是采用密码表暴力破解了,很多安全意识差的密码居然还是root,123456之类的,分分钟被暴,而扫到后台服务器22开放端口也可以确认后台服务器使用linux开放ssl登录。所以应对方式有三种:

mysql限制访问IP,这个利用alter user语句就可以做到,root账户尽量只给localhost权限,慎用user@%;

不要使用弱密码,尽量采用字母+数字+特殊字符的密码;

服务器使用放暴力破解服务,可以针对非法访问恶意操作进行锁IP防御。

2.2、服务器端口漏洞

通过nmap很容易扫描到服务器暴露的端口,比如139端口外露,就有大量的手段可以渗透:

net use ipipcContent

nbsp”” /user:administrator

所以应对手段也很简单,开启防火墙,且只开放有需要的端口,敏感端口如139,445不要外露。

2.3、操作系统漏洞

虽然大部分公司都采用linux作为服务器,相对安全得多,但是还是有不少公司(至少博主见过挺多的)还在使用windows server,大量的漏洞让服务岌岌可危,应对方式也很简单粗暴,该打的补丁就打,不要偷懒。

2.4、木马植入

这个就是黑客直接通过向服务器种植木马,开启后门,取得服务器控制权,应对方式主要以下三点:

1、不要用服务器访问乱七八糟的网站(尤其是公司服务器在国外的,不要想着借来翻墙了,别作死),下载乱七八糟的东西;

2、实体机的移动外设接入前注意杀毒;

3、服务器安装相应安全产品,定期查杀木马,定期更新漏洞补丁;

4、防火墙注意开启,相应端口注意配置。

做到以上几点,基本上中级以下的黑客是进不来了,就算是中高级的黑客也得费一番功夫。当然,如果公司服务器数据涉及资产非常高,建议直接联系小蚁君


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/674628.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-28
下一篇2023-07-28

发表评论

登录后才能评论

评论列表(0条)

    保存