携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第8天,点击查看活动详情
一、根治弱口令
用户账户弱口令的问题一直很突出,尤其是一些系统的关键账户弱口令如果被暴力破解,其带来的危害极为巨大。那么,如果要彻底的杜绝弱口令,可以在软件设计阶段加以约束,从根源上杜绝掉用户弱口令。
一是系统用户注册、初始化用户时,通过正则表达式的方法来校验用户设定的简单、易猜的口令。同样,用户修改密码也要增加复杂度校验。
其次,增加人机验证方式,有效防暴力破解。常见方法是在登录、修改密码等敏感操作上,增加验证机制,如字母或数字验证码。,亦可接入第三方行为型验证码,如滑动拼图、文字点选、推理选图等。这样暴力破解的成本会提高,系统安全性高,提高用户体验。
二、杜绝文件上传漏洞
文件上传是常见的业务流程,本质是将本地文件上传到服务器上保存的过程,如上传头像、文章图片、上传文件等。因此,文件上传漏洞同样是较广泛的
web安全漏洞,它是指通过正常的上传业务流程,将木马传到系统上,执行木马程序,获得高级管理权限来实现远程控制程序甚至操作服务器的目的。在实践中我们常见的校验方法有扩展名校验、文件头校验、MIME类型校验,但是这些校验很容易的会被黑客绕过,那么,除以上传统校验外,我们还要增加以下防范措施:
一是附件存储与应用服务器分离部署,防止黑客上传木马文件控制应用服务器;二是设置文件上传的目录不可执行;三是程序使用中间映射方法,随机数更改文件路径和文件名,不可猜测,保证上传后无法获得真实路径。
三、抵御跨站XSS攻击
跨站XSS攻击是指程序开发时疏忽的漏洞,黑客可通过一些方法注入一些恶意脚本文件,当用户执行时,攻击者可能获得高级权限、访问越权页面、拿到会话信息、冒充其他用户等行为。该漏洞的主要原因,是在表单输入环节,程序未对用户输入的内容进行编码过滤,致使其输入的一些恶意脚本被存储起来,黑客会通过该段恶意脚本的引导、点击被再次渲染,从而导致跨站XSS脚本的执行。那么抵御跨站XSS脚本攻击最有效的方式,有以下三种组合方式:
首先,编码中不使用敏感DOM操作对象属性或方法,如cookie、lastModified、write(),杜绝DOM型XSS攻击的实现。其次将用户输入的数据进行过滤和转义。通过敏感字符过滤、HTML转义实体化等方法,做到输入有过滤,输出有转义。最后是服务器设置HttpOnly方式,防止会话cookies信息暴露在客户端,防止黑客尝试读取用户cookies。
上述三种常见的WEB安全问题,本质上都是因用户提交非可靠、不安全数据导致的。在编程界有一句话,即“所有前端的验证机制都是不安全的,不要相信用户提交的任何东西”。通俗来讲就是指前端提交的数据都可以绕过检验或是传递过程中拦截、修改原始数据的方式提交给后端。那么在开发过程中,我们就要用户提交的数据不仅要在前端校验,后端也要一并进行校验,实现双保险,提高系统的稳定性和可维护性。