项目进行高危漏洞测试的时候发现高危漏洞, 音视频图片文件等是真实访问地址, 需要隐藏真实的音视频图片访问地址

1.1 vue2项目封装的自定义指令, 将如下代码添加到全局的main.js文件中

Vue.directive('binary-src', {  
  inserted: function (el, binding) {  
    // 假设 binding.value 是图片的 URL  
    const url = binding.value;  
    // 使用 fetch API 获取图片资源  
    fetch(url)  
      .then(response => response.blob()) // 转换为 Blob 对象  
      .then(blob => {  
        // 创建一个 URL 对象,指向 Blob 数据  
        const objectURL = URL.createObjectURL(blob);  
        // 设置元素的 src 属性为 Blob URL  
        el.src = objectURL;  
      })  
      .catch(error => {  
        console.error('Error fetching image:', error);  
      });  
  }  
})

1.2 自定义指令的使用

<img v-binary-src="真实的url地址">
<audio v-binary-src="真实的url地址" controls/>
<video v-binary-src="真实的url地址" controls />
<iframe v-binary-src="真实的url地址" />

2. 处理后端返回数据的url 函数

// 将
function handleUrlToBlob async (url) {
	// 将文件下载到本地
	let response = await fetch(url)
	// 将文件转成数据流
	let blob = await response.blob()
	// 生成本地预览地址url
	let blobUrl = URL.createObjectURL(blob)
	return blobUrl
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值