当前位置: 首页 > 科技观察

被黑客攻击,如何让登录过程安全?

时间:2023-03-18 02:40:42 科技观察

用户登录是系统最重要的功能之一。登录成功,即可拥有系统的相关使用权限。因此,设计一个安全的登录流程是非常有必要的。保护用户账号不被黑客窃取,不仅是在保护用户的基本利益,也是在保护网站的声誉和业务发展。流程安全安全登录流程必须使用HTTPS协议。HTTPS协议安全性高,可以保证数据传输过程的安全。虽然有fiddler等代理方式可以拦截数据,但一般情况下,没有用户的配合是无法拦截的。可以在阿里云申请HTTPS证书,个人站点可以直接使用免费版,非常方便。nginx和SpringBoot的配置也很简单。登录必须有机器验证机制,可以防止黑客尝试暴力登录。通常可以使用图片验证码,图片要加干扰线,使用不同的字体和大小写,增加识别难度。目前已有编码平台和AI方法可以识别图像验证码,但成本相对较高。一些大型网站已经在使用新的验证方式,例如拖动鼠标移动滑块或拉直倾斜的图片。攻击难度相对较高。一定要注意防范XSS和CSRF攻击。通过在目标网站上注入恶意脚本,攻击者可以在其他用户的浏览器上运行脚本。利用这些恶意脚本,攻击者可以获得用户的敏感信息。用户提交的任何数据都必须持怀疑态度,不能完全信任。该过滤的就过滤,该拦截的就拦截。淘宝等国内大型网站也存在CSRF漏洞,可见大家对这种攻击方式还是比较陌生。后台登录代码要注意防止SQL注入攻击。如果黑客提交passwordor1=1并且不在后台进行SQL注入预防,只是检查数据是否存在,则攻击可能会成功。所以or1=1有个响亮的名字,叫万能密码。恐怕每个人在做大学作业的时候都会有这个漏洞。登录成功后返回的cookie要设置为httponly和secure,这样就无法通过js脚本获取cookie,可以防止跨站攻击,增加爬虫的难度。cookie的有效期根据业务需要而定,应尽可能短。我以前是做爬虫的,爬网的时候处理过很多这样的cookie,比普通的cookie复杂多了。如果使用短信登录,一定要控制验证码的时效性,即验证码一次5分钟有效,一分钟内只能发送一次。必要时可单点登录,其他设备登录后本设备自动失效。您也可以使用第三方授权登录接口,如微信登录,优化用户登录体验,提高安全性。密码安全使您的密码尽可能安全。一般来说,长度必须大于8个字符,并且必须同时包含数字、小写字母和大写字母。建议用户使用特殊字符。重置密码最好通过邮件发送一定时间内有效的重置链接,或者手机短信验证码,甚至两者结合。对于安全性要求特别高的场景,比如炒股软件,有的设计了单独的动态密码APP,通过算法比对动态密码。在当今的隐私时代,密码保护的问题可能并不那么安全。用户名密码错误提示含糊不清。不管用户名或密码是否错误,都不应该给用户统一提示“用户名或密码错误”。这将在一定程度上使忘记用户名的用户难以登录,并且可以辅助用户名恢复机制或允许使用电子邮件地址和手机号码登录。不要在浏览器中以明文形式保存用户名和密码,即使是md5加密。如果想自动登录,可以保存RSA加密后的密文,通过cookies提交密文分析自动登录。md5或md5(md5)今天不安全,黑客的彩虹表估计已经覆盖了大部分数据。为保护用户密码存储必须加密。CSDN当年采用明文存储密码,导致用户密码被脱裤子就彻底泄露,给用户和网站带来了极大的风险。基于彩虹表,可以轻松破解md5、sha1等古老算法的密文。建议至少使用sha256及以后的算法,并在加密过程中加盐。salt的长度最好大于64位。如果条件允许,为每个用户设计一个唯一的加盐值,将大大提高安全性。数据库应保留用户的历史密码。更改密码时,不能与前几次相同。如果黑客有某个历史密码,可能刚好在用户改回来之后。参考谷歌账号登录,修改密码和6个月前一样。保留用户登录记录。时间和ip都需要。如果当前IP与之前的IP相差较大,可以通过邮件、短信、站内信等方式提醒用户,建议用户修改密码。如果用户长时间没有登录,以后登录时最好强制修改密码,不能与历史密码相同。如果短时间内登录失败,则需要锁定用户。比如失败5次可以锁定1小时,再次失败可以锁定8小时,再次失败可以锁定24小时。锁定后,用户可以通过注册邮箱或短信进行解锁,但也要限制一天内的解锁次数。即使在用户登录并执行重要操作后,用户仍需要重新输入密码。比如修改密码,修改绑定邮箱,修改密码保护问题,有消费行为等,可以防止用户被XSS攻击后黑客修改重要数据。小结本文整理了设计登录流程时需要考虑的一些关键点。世界上没有绝对安全的系统,有价值的网站和应用程序是黑客攻击的重点。工作中一定要注意安全问题,发现漏洞及时修复。还要考虑网站数据的重要性并采取适当的保护措施。