软件开发之常见前端安全漏洞
软件开发完成后,在Web服务器在投入使用之前,应该确保服务器是相对安全地。保证服务器相对安全地前提是,要充分了解影响Web系统安全。
1、跨站脚本(XSS)漏洞
跨站脚本攻击发生在客户端,可被用于进行窃取隐私、钓鱼欺骗、偷取密码、传播恶意代码等攻击行为。
解决方案:
①④⑤对参数做HTML转义过滤,要过滤的字符包括:单引号、双引号、大于号、小于号、&符号,防止脚本执行;
②在变量输出时进行HTML ENCODE处理。
2、跨站请求伪造(CSRF)漏洞
恶意网站通过脚本向当前用户浏览器打开的其他页面的URL发起恶意请求,由于同一个浏览器进程下Cookie可见性,导致用户身份被盗用,完成恶意网站脚本中指定的操作。该漏洞会导致用户信息泄露,被盗用后进行恶意操作。
解决方案:
①验证请求是否是信任页面发起的,随机生成token植入session,再在后端进行一致性校验。
②验证请求是否是合法用户发起的,修复方案:验证码、密码验证、OTP验证。
3、HTTP Header注入漏洞
WEB程序代码中把用户提交的参数未做过滤就直接输出到HTTP响应头里,导致攻击者可以利用该漏洞来注入到HTTP响应头中实现攻击。
解决方案:
①对参数做合法性校验以及长度限制,谨慎地根据用户所传入参数做HTTP响应的Header设置;
②在设置HTTP响应头时,过滤回车换行%0d、%0a、%0D、%0A字符。
4、目标遍历漏洞
目标遍历是由于WEB服务器或WEB应用程序对用户输入文件名称的安全性验证不足而导致的一种安全漏洞,使得攻击者通过HTTP请求和利用一些特殊字符就可以绕过服务器的安全限制,访问任意受限文件,甚至执行系统命令。
解决方案:
①严格检查文件路径参数,限制在指定范围。
②严格限制文件路径参数,不允许用户控制文件路径相关的参数。
5、SQL注入漏洞
SQL注入攻击,被广泛用于非法获取网站控制权,是发生在应用程序的数据层上的安全漏洞。
解决方案:
①所有的数据库查询语句均使用数据库提供的参数化查询接口;
②对特殊字符进行专业处理;
③严格规定长度、统一编码、避免网站显示SQL错误提示信息。
6、文件下载漏洞
WEB应用程序在处理文件下载时,接收用户指定的路径和文件名进行下载,攻击者利用此漏洞来下载服务器的其他文件甚至任意文件。
解决方案:
①限制可下载文件所在的目录为预期范围;
②通过指定文件编号的方式来定位下载文件。
7、文件上传漏洞
文件上传的WEB程序未对文件类型和格式做合法性验证,导致攻击者可以上传WEB Shell或者非期望格式的文件。
解决方案:
①对上传的文件大小和类型进行校验,定义上传文件的白名单;
②保存上传文件的目录不提供直接访问。
以上就是会影响Web系统安全漏洞,多加注意,相信你的服务器一定能够安全运行。