本文主要是介绍【BootCDNStaticfile】CDN供应商被投毒后,应该如何替换对应的CDN,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
【BootCDN/Staticfile】CDN供应商被投毒后,应该如何替换对应的CDN
BootCDN作为老牌的,国内最大的免费CDN供应商之一,通过同步cdnjs仓库,提供了常用javascript组件的CDN服务。可以说,目前大多数的项目都或多或少的依赖了部分CDN服务。其实早在2023年,网上就已经发现了BootCDN被投毒的情况,与此同时,Staticfile
、Polyfill
、Bootcss
等同样开源的CDN服务提供商也被投毒了,由此引出了本文,CDN被投毒后,应该如何应对进行替换呢?
一、问题的背景
我也是最近接手了一个电商项目,该项目的框架较老,其中也使用了部分的BootCDN
提供的CDN,虽然说暂时还没发现投毒的情况,但是已经注意到了这个问题,防范于未然嘛,所以就提前进行了CDN更换。
考虑到可能有小伙伴不了解CDN到底是什么,是如何运作的,这里简单介绍一下。
CDN
是 Content Delivery Network 的缩写,中文名为“内容分发网络”。它是一种广泛应用于互联网的技术和服务,用于加速向用户交付静态或动态网页内容,如 HTML 页面、图片、视频流、应用程序等。CDN 的主要目的是提高内容加载速度,减少源服务器的负载,并为用户提供更好的访问体验。
CDN 的工作原理
- 内容复制:CDN 从原始服务器获取内容副本,并将其存储在全球分布的边缘服务器上。
- 请求路由:当用户请求某个网站的内容时,CDN 会根据用户的地理位置将请求定向到最近的边缘服务器。
- 缓存和更新:边缘服务器缓存内容,并定期从原始服务器更新,以确保用户获取到最新版本的内容。
CDN 的优势
- 减少延迟:用户可以从地理上更接近的服务器获取数据,从而降低延迟。
- 增加可靠性:即使某些服务器出现故障,CDN 也可以通过其他节点继续提供服务。
- 缓解带宽压力:分散了对源服务器的直接流量,减轻其带宽压力。
二、CDN是怎么被投毒的?
大家现在了解了什么是CDN,那么CDN是如何被投毒的呢?
据网上的资料显示,这几家CDN供应商被同一家公司收购了,随后在23年的6月,有网友爆出Bootcss被投毒的疑惑。
即便到现在,投毒行为仍在继续,大量用户反馈存在资源被投毒。
投毒实现的原理
CDN我们知道是通过获取服务器上的js来实现快速加载,因此攻击者通过利用CDN(内容分发网络)的缓存机制,将恶意内容注入到合法的CDN缓存中,从而使用户在访问合法网站时接收到恶意内容。
例如本次投毒事件中,当我们获取js文件的时候,会将一些恶意代码插入到js中,当然这并不是一定会触发,是有几率的,就是为了混淆你的判断。但是一旦出现这个情况,就会往我们需要的js文件中插入大量的恶意代码,并且会请求对应的资源,这些资源往往较大,因此会拖垮我们的网速和浏览器。
更有甚者会修改你的页面,在页面里面添加广告、不良信息等,并且将非法内容缓存到浏览器中,影响整个浏览器的运行。
附上几张被攻击的网图,本人没有受到攻击暂时没有图片,但是大家需要多多注意!!!(图片来源:GreatNXY)
三、如何解决
从技术上来讲,为了防止CDN投毒攻击,可以采取以下措施:
- 使用HTTPS:确保网站使用HTTPS加密,这样即使攻击者试图修改内容,也会被浏览器识别为不安全。
- 验证签名:使用签名验证来确保内容的完整性,例如使用HSTS(HTTP Strict Transport Security)或SRI(Subresource Integrity)。
- CDN配置:正确配置CDN,例如设置合理的缓存过期时间,确保缓存不会保留过长时间。
- 内容过滤:使用内容过滤机制来检测潜在的恶意内容。
- 监控和审计:定期监控网站的流量和内容,审计CDN缓存的内容,及时发现异常。
- 使用信誉良好的CDN服务提供商:选择提供安全功能和服务的支持的CDN供应商。
安全的CDN推荐
首先给大家推荐几个比较安全的CDN提供商
1、字节跳动静态资源公共库:由字节跳动提供的一个CDN加速服务站,字节的实力你懂的!官网地址
2、CDN.JS:一个基于github的cdn库,资源和速度都不错。官网地址
替换CDN服务
那么有了比较安全的CDN服务提供商了,那么我们应该如何替换掉不安全的CDN呢?这里以字节的网址为例。
比如说我在页面中引入了bootcss
的CDN,这个CDN引用了xlsx
库的0.12.7
版本中的xlsx.core.min.js
这个js文件。
<script type="text/javascript" src="https://cdn.bootcss.com/xlsx/0.12.7/xlsx.core.min.js"></script>
那么我就要去字节的CDN网址里面查找xlsx
这个库
找到以后,点击这个库,然后在左侧的版本中,找到所需的版本与对应的js文件,然后点击复制TAG
这个按钮,这样你就获得了引入的这一段js,如下:
<script src="https://lf9-cdn-tos.bytecdntp.com/cdn/expire-1-M/xlsx/0.12.7/xlsx.core.min.js" type="application/javascript"></script>
当然别忘记删掉不安全的CDN引用,这样你就完成了CDN的替换。到此恭喜你,以后做项目就更加安全可靠了!
这篇关于【BootCDNStaticfile】CDN供应商被投毒后,应该如何替换对应的CDN的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!