第六届字节跳动青训营第十五节课 | 青训营

69 阅读4分钟

客户端漏洞

首先声明一下,虽然我们把漏洞分为客户端和服务端,但是并不代表客户端漏洞只是客户端或者前端开发同学才会涉及到,相反,客户端的一些漏洞修复往往依赖于服务端,无论是中间键还是代码层面的修复。

开放重定向:

其实大家在很多网站的页面都会用到这个功能。比如淘宝登录以后就直接跳转到以前购买的商品链接,在抖音登录跳转到以前访问的视频等等情况。其实这些功能都是依赖于重定向这样一个原理,简单来说就是之前记住了某个链接在进行了一些操作之后重定向到这个链接。这个功能本身是没有问题,但是如果链接不可控就会导致一些安全风险。某些需要重定向到其他站点的功能,往往在参数中携带需要重定向的URL ,但实际程序逻辑没有控制好重定向的范围,导致攻击者可以构造恶意链接,诱导用户重定向到恶意站点。修复方案可以对重定向严格进行白名单控制并正确校验匹配白名单。

XSS

跨站脚本(xss)攻击:本质是一种script代码注入,攻击者往目标web页面里插入恶意script代码,当用户访问页面(有客户端时需要交互)时,嵌入其中web里面的script代码会被执行,从而达到恶意攻击用户的目的。xss存在反射型、存储型、Dom型。通常会存在的危害包括窃取用户敏感信息,以用户身份执行敏感操作。前端代码使用vue,会从请求path中读取username,同时使用v-html指令将username直接渲染到Dom中。step1构造恶意链接,将username设置为恶意payload。step2攻击者通过网站反馈入口,向管理员/运营人员发送恶意链接。step3攻击者的服务器成功收到管理员/运营人员的session cookie。step4浏览器替换cookie为管理员的,获取管理员权限。

防护方法:

1.输入过滤:对输入的特殊字符进行拦截,禁止前端提交特殊字符。 2.输出过滤:a当字符输出到Dom时候,对危险字符进行html encode,避免xss。b使用vue/react等框架时候,避免使用危险指令,而应该使用安全指令。v-html/v-text。 3.富文本场景:比如文章发布场景,本身是需要提供富文本功能,这时候需要严格限制tag和attribute,可以在代码层面做白名单或者黑名单。 4.csp:用于缓解xss,理念是对当前站点允许加载什么源的资源,发送什么请求梦进行限制。content- security- policy:default-src‘self’:img-src *;media-src example;org Example.net;script-src user scripts.example.com 通过学习本课程客户端漏洞和XSS可以帮助人们更好地理解现代应用程序的安全风险。这使得人们能够更深入地了解潜在的攻击方式和防范措施,从而提高他们的安全意识。 还可以保护用户数据,客户端漏洞和XSS可能导致用户的敏感信息泄露和隐私问题。通过学习它们,我们能够加强对用户数据的保护和隐私安全。对于开发人员来说,了解客户端漏洞和XSS的原理和攻击方式可以帮助他们编写更安全的代码。这样能够减少潜在漏洞的出现,提高应用程序的安全性。 防止恶意攻击通过了解和研究客户端漏洞和XSS,我们可以更好地理解攻击者的心态和方法。这样能够帮助我们预测和防止未来可能出现的攻击,并采取相应的安全措施。并且合法的学习和研究是积极的,但必须遵守法律法规,并将知识用于合法和道德的目的。