0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

遭遇网络攻击后,如何保证用户登录的安全性?

如意 来源:机器之心 作者:丁仪 2020-11-17 15:19 次阅读

用户登录是系统中最重要的功能之一,登录成功就能拥有系统的相关使用权限。所以设计一个安全的登录流程是十分必要的。保护用户账号不被黑客窃取,既是在保护用户的基本利益,更是在保护网站的信誉和业务发展。

流程安全性

安全的登录流程必须使用 HTTPS 协议。HTTPS 协议具有较高的安全性,可以保证数据传输过程的安全。虽然有 fiddler 等代理方式可以截取数据,但一般情况下没有用户的配合也无法截取。HTTPS 证书可以在阿里云申请,个人站点可以直接用免费版,非常方便。nginx 和 Spring Boot 的配置也非常简单。

登录一定要有人机验证机制,可以防止黑客以暴力破解的方式尝试登录。通常可以用图片验证码,并且图片要加干扰线,使用不同的字体、大小写提高识别难度。目前有打码平台和 AI 方式可以识别图片验证码,但是成本比较高。一些大型网站已经在使用新的验证方式,比如拖动鼠标移动滑块或者把一个倾斜的图片扶正,攻击的难度还是比较高的。

一定要注意防范 XSS、CSRF 攻击。攻击者通过在目标网站上注入恶意脚本,可以在其他用户的浏览器上运行脚本。利用这些恶意脚本,攻击者可获取用户的敏感信息。用户提交的任何数据都要保持怀疑态度,不能完全信任,该过滤就过滤,该拦截就拦截。国内大型网站,比如淘宝也存在过 CSRF 漏洞,可见大家对这种攻击形式还比较陌生。

后台登录代码要注意防范 SQL 注入攻击。如果黑客提交 password or 1 = 1 而后台没做 SQL 防注入,只是查询下数据是否存在,有可能就攻击成功了。所以 or 1 = 1 有个响亮的名字,叫万能密码。恐怕大家在做大学作业的时候,都有这个漏洞吧。

登录成功后,返回的 cookie 要设置 httponly、secure,这样就无法通过 js 脚本获取 cookie,可以防止跨站攻击,增加爬虫程序的难度。cookie 有效期根据业务需求决定,尽量短一些。曾经我也做过爬虫,爬网银的时候就处理过很多这样的 cookie,比普通 cookie 复杂很多。

如果使用手机短信登录,一定要控制验证码的时效性,即验证码一次有效 5 分钟,一分钟内只能发送一次。有必要时可以单点登录,其他设备登录后,本设备自动失效。也可以使用第三方授权登录接口,如微信登录等,优化用户登录体验,安全性更好。

密码安全性

尽量提升密码强度。一般来说,长度要 8 位以上,必须同时包含数字、小写字母、大写字母,建议用户使用特殊字符。

重置密码,最好通过邮箱发送一定时间内有效的重置链接,或者手机短信验证码,甚至两者相结合的方法。安全要求特别高的场景,比如股票交易软件,有的设计了一个单独的动态密码 APP,通过算法比对动态密码。密码保护问题在今天隐私满天飞的时代背景下,可能已经不那么安全了。

用户名密码错误提示含糊一些。无论是用户名还是密码错误,统一提示“用户名或密码错误”,不要给用户明确的提示。这样会在一定程度上让忘记用户名的用户难以登录,可以辅助一个用户名找回机制或允许使用邮箱、手机号进行登录。

不要在浏览器中明文保存用户名、密码,md5 加密也不行。如果要自动登录,可以保存 RSA 加密后的密文,通过 cookie 提交密文进行解析来自动登录。md5 或者 md5(md5) 在今天已经不安全了,黑客的彩虹表可能已经覆盖了大多数数据了。

保护好用户

密码落库必须加密。CSDN当年使用明文存储密码导致被脱裤后完全公开了用户密码,给用户和网站带来了极大的风险。基于彩虹表能够很方便地破解 md5、sha1 等古老算法的密文,建议至少使用 sha256 及以后的算法,并且加密过程加盐。盐的长度最好也要在 64 位以上。如果条件允许,给每个用户设计一个独有的盐值,将极大提升安全性。

数据库要保留用户的历史密码,修改密码时,不能和前几次一样。如果黑客掌握了某个历史密码,也可能在用户改回后恰好就对上了。参考 Google 账号登录,修改密码和 6 个月前的一样都是不行的。

保留用户的登录记录。时间、ip 都需要。如果本次 ip 和以前的有较大的差别,可以通过邮箱、短信、站内信等向用户提示,建议用户修改密码。用户长时间没有登录,后续再登录的时候最好强制修改密码,并且和历史密码不重复。

短时间内登录失败,要锁定用户。比如失败 5 次可以锁定 1 小时,再次失败锁定 8 小时,又失败锁定 24 小时。锁定后,用户可以通过注册邮箱或手机短信实现解锁,但一天内也要限制解锁次数。

即使在用户登录后,进行重要操作的时候,也要求用户重新输入一次密码。比如修改密码、修改绑定邮箱、修改密码保护问题、有消费行为等,可以防止用户被 XSS 攻击后黑客修改重要数据。

总结

本文梳理了设计登录流程需要考虑的一些关键点。世界上没有绝对安全的系统,有价值的网站和应用都是黑客攻击的重点对象。工作中务必重视安全问题,发现漏洞及时修复。也要考虑网站数据的重要程度,采取合适的防护措施。
责编AJX

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 网络安全
    +关注

    关注

    9

    文章

    2942

    浏览量

    58669
  • SQL
    SQL
    +关注

    关注

    1

    文章

    738

    浏览量

    43458
  • 黑客
    +关注

    关注

    3

    文章

    277

    浏览量

    21659
收藏 人收藏

    评论

    相关推荐

    如何保证汽车远程信息系统的安全性

    程师面对并解决范围广阔的技术安全和可靠性问题。目前,许多设备都具有联网的功能,联网设备易受攻击的特性已经成为必须面对的挑战。在开放的网络环境中工作的嵌入式设备越多,安全性就越来越成为事
    发表于 08-28 12:38

    nios如何保证安全性

    在工业设计当中,fpga的安全性是很严重的(个人认为),烧写在epcs上的程序,只要用逻辑分析仪就可以实现程序盗用,nios也是同样的不靠谱,在flash当中,一样没有加密,会有安全问题。所以我觉得
    发表于 08-15 14:42

    一种更简便的增强 Wi-Fi 连接式物联网设计安全性的解决方案

    设备尝试加入受信任的网络时,便沦为攻击的牺牲品。利用 Texas Instruments 的双核无线 MCU,工程师可以轻松地增强物联网设备在其整个产品生命周期内的安全性,并支持多层端到端安全
    发表于 08-08 09:25

    边缘智能的边缘节点安全性

    设备。大多数工业物联网用户认为设备开箱即可使用。系统必须具有默认安全性。应当设定这样的系统期望:除了默认配置以外,用户可能永远不会配置设备。默认密码较弱是一个常见错误。网络安全性在工业
    发表于 10-22 16:52

    蓝牙mesh系列的网络安全性

    蓝牙mesh网络安全性概览为何安全性如此关键?安全性可谓是物联网(IoT)最受关注的问题之一。从农业到医院、从智能家居到商业智能建筑、从发电站到交通管理系统,物联网系统和技术将触及我们生活的方方面面
    发表于 07-22 06:27

    物联网应用中BLE安全性怎么保证?

    安全性是设计物联网(IoT)应用时面临的最大挑战之一。由于物联网设备通过无线方式进行通话,因此一切控制和状态信息以及私人用户数据都可能会暴露于风险之中。不安全的物联网设备可能会使人员生命和财产面临
    发表于 08-02 07:57

    嵌入式实时多任务操作系统的安全性怎么样?

    许多实时操作系统本身就有不安全性和不可靠,这些不安全因素就给黑客的入侵和病毒的攻击留下了可趁之机。操作系统是最基本的系统软件,它是对硬件系统的第一次扩充,同时给
    发表于 03-06 06:27

    嵌入式设备如何提高安全性

      随着越来越多的嵌入式设备接入网络并成为物联网的一部分,网络黑客们开始利用这些连接,以达到自己不可告人的目的。因此,嵌入式设备必须提高安全性,以防止黑客复制IP、盗窃数据或侵入系统,可是对于嵌入式
    发表于 06-30 11:05

    HarmonyOS学习之三:HarmonyOS 系统安全性

    HarmonyOS(鸿蒙操作系统)采用全新的微内核设计,具有增强的安全性和低延迟。该微内核旨在简化内核功能,在内核外的用户模式下实现尽可能多的系统服务,并增加相互的安全保护。微内核本身仅提供线程调度
    发表于 11-26 09:30

    提高无线网络安全性的方法

    防护网络安全  a.设置较高安全性的无线加密  没有加密的无线网络就像是没有上锁的大门一样,盗窃者可以很轻易地进入。请设置较为复杂的无线密码,提高无线安全性。建议将无线密码设置为字母、
    发表于 12-11 14:00

    什么是蓝牙mesh网络安全性

    蓝牙mesh网络安全性的基本概念
    发表于 02-25 08:22

    有什么方法可以保证视频设计的安全性吗?

    如何利用FPGA的新功能来保证视频设计的安全性
    发表于 04-30 06:59

    你的应用程序如何保持安全性

    引言拥有特权的恶意软件或者可以实际访问安卓设备的攻击者是一个难以防范的攻击向量。 在这种情况下,你的应用程序如何保持安全性?本文将讨论 Android keystore 机制以及在尝试实现安全
    发表于 07-28 08:40

    RISC-V如何保证高权限模式程序及外设的安全性

    RISC-V有机器模式、监管模式和用户模块,但无论在哪个模式下当TRAP发生时都会转到机器模式,是不是也就意味着在用户模式下进入中断服务程序也会拥有机器模式的权限,那我们如何保证高权限模式程序及外设的
    发表于 05-26 08:11

    如何避免网站遭遇网络攻击,几种防护方式介绍

    用户在运行网站的时候,肯定都不希望遭遇网络攻击,而维护网站安全是离不了网站管理员的日常维护,今天小编就来介绍下网站避免
    发表于 04-10 11:25 2402次阅读