常见安全漏洞 | 青训营后端

99 阅读6分钟

漏洞

  • 网站构成,主要包括

    • 前端:JavaScript /Vue / React
    • 网关:Nginx
    • 后端:Go / Java / Node
    • 前后端交互:HTTP/ WebSocket
  • 常见的安全事件

    数据泄露、服务瘫痪、成果失窃、系统劫持等。

服务端漏洞

  • 第三方组件漏洞

    • 第三方组件漏洞是指在软件或系统中使用的第三方库、框架、模块或插件中存在的安全漏洞,可能导致系统受到攻击或数据泄露。这些漏洞通常是由于第三方组件自身的错误、缺陷或不安全的设计引起的。
    • 常见的问题:代码漏洞、未修复的漏洞、过期组件、恶意组件。
    • 预防措施:持续监测漏洞信息、及时更新组件、审查组件源代码、选择可信赖的供应商、使用漏洞扫描工具、实施最小权限原则、定期审计、安全开发实践等。
  • SQL注入

    • SQL注入(SQL Injection)是一种常见的网络安全漏洞,它发生在应用程序未能正确验证用户输入的情况下。攻击者通过在输入字段中插入恶意的SQL代码,使数据库执行非法的查询或操作,从而导致数据泄露、数据损坏,甚至是完全控制数据库。
    • 常见的问题:未过滤用户输入、拼接SQL查询、不安全的编码和解码、错误的权限管理。
  • 命令执行

    • 代码中遇到需要调用某个命令才能完成的功能时候,会涉及到命令拼接,如果命令拼接没有做好安全过滤,那么将会导致命令注入风险,服务器权限将会被控制
    • 预防措施:对动态的值尽可能设置白名单进行验证。;如果某些位置无法白名单,需要尝试对数据类型进行校验;特殊字符黑名单的过滤,或者转义。
  • 越权漏洞

    • 越权漏洞(Privilege Escalation Vulnerability)是一种常见的网络安全漏洞,它发生在系统或应用程序中存在未经授权的用户可以获取未授权访问或特权的情况下。攻击者通过越过正常权限限制,获取比他们应该拥有的更高权限,从而可能访问敏感信息、操作系统或应用程序,造成安全威胁。

    • 横向越权(Horizontal Privilege Escalation):攻击者尝试获取同一权限级别下其他用户的访问权限,以便访问他们未被授权的资源。

      纵向越权(Vertical Privilege Escalation):攻击者尝试获取比他们当前权限更高的权限级别,从而获得访问敏感资源或系统级别操作的权限。

    • 防御措施:实施强大的身份验证和授权机制、最小权限原则、细粒度的权限控制、严格验证用户输入、错误处理安全性、安全开发实践、安全测试。

  • SSRF

    • SSRF(Server-Side Request Forgery)漏洞是一种常见的网络安全漏洞,它允许攻击者在受害服务器上执行未授权的网络请求。攻击者通过构造恶意请求,欺骗服务器去访问攻击者指定的目标,可能导致数据泄露、内部系统暴露、绕过防火墙等风险。
    • 预防措施:限制服务器端请求目标、白名单验证、使用绑定IP或域名、配置超时和限制、安全编码实践、安全测试。
  • 文件上传漏洞

    • 文件上传漏洞是一种常见的网络安全漏洞,它发生在应用程序未能正确验证用户上传的文件的情况下。攻击者可以通过上传恶意文件来执行未经授权的操作,可能导致系统被入侵、数据泄露、恶意代码执行等风险。
    • 预防措施:验证文件类型、检查文件扩展名和内容、隔离上传文件、设置适当的文件权限等。

客户端漏洞

  • 开放重定向
    • 程序未能正确验证和过滤用户提供的重定向URL的情况下。攻击者可以构造恶意的URL,使用户被重定向到不受信任的站点,可能导致钓鱼攻击、窃取用户信息等风险。
    • 预防措施:验证和过滤用户输入、避免使用用户输入构建URL、透明的重定向等。
  • XSS
    • XSS(Cross-Site Scripting)漏洞是一种常见的网络安全漏洞,它发生在应用程序未能正确过滤用户输入数据并在网页内容中显示时。攻击者可以通过注入恶意脚本代码,使其他用户在访问受影响页面时执行这些恶意代码,从而可能窃取用户信息、劫持会话、执行恶意操作等。
    • 预防措施:输入验证和过滤、最小化脚本使用、使用XSS过滤器等。
  • CSRF
    • CSRF(Cross-Site Request Forgery)漏洞是一种常见的网络安全漏洞,它利用了用户在已认证的状态下访问恶意网站或点击恶意链接时,执行未授权的操作。攻击者通过伪造请求,使用户在不知情的情况下执行操作,可能导致数据修改、账号劫持等风险。
    • 预防措施:使用CSRF令牌、检测并限制敏感操作、验证码等。
  • 点击劫持
    • 点击劫持漏洞是一种网络安全漏洞,它利用了透明的或半透明的用户界面,使用户在不知情的情况下执行恶意操作。攻击者通过将受害用户引导到一个看似无害的页面,但实际上在该页面上叠加了恶意操作,从而诱使用户点击一些不知情的操作,可能导致数据泄露、恶意操作等风险。
    • 预防措施:X-Frame-Options头部、Content Security Policy(CSP)、浏览器防护等。
  • CORS跨域配置错误
    • CORS(Cross-Origin Resource Sharing)是一种机制,用于控制在一个源(域名、协议、端口)下的网页应用是否可以访问来自其他源的资源。CORS有助于防止恶意网站通过跨域请求访问其他网站的敏感数据。然而,配置CORS时可能会出现错误,导致跨域请求无法正常工作或出现安全问题。

学习感悟

工作业务开发工作是相对较多的,但是产品上线、维护等过程中,安全是不可或缺的一个环节。网络环境越来越复杂,安全工作也越来越重要。对SQL注入有点了解,也对其他安全问题有了一定的了解,为业务的正常运行保驾护航。