GitHub代码扫描开始抱怨我的旧Vue代码存在安全警报。我确实理解它的目的——攻击者可以创建一个恶意的URI来做一些令人讨厌的事情。
基于未验证用户输入的客户端URL重定向可能导致重定向到恶意网站。CWE-79 CWE-116 CWE-601
它不喜欢下面的代码,这是在Vue:中向下滚动到指定锚点的一种变通方法
mounted() {
const { hash } = this.$route;
if (this.$route.hash) {
setTimeout(() => {
window.location.href = hash;
}, 1000);
}
},
首先,它真的没有得到验证吗?它由Vue路由器处理。第二,我能对这个警报做些什么吗?我正在考虑忽略它。坏主意?
如果您只需要跳转到一个锚点,那么解决方法是不必要的。将Vue路由器的滚动行为配置为自动滚动到hash
元素也可以解决GitHub警告:
// router.js
const router = new VueRouter({
//...
scrollBehavior(to, from, savedPosition) {
if (savedPosition) {
return savedPosition
}
if (to.hash) {
return {
selector: to.hash,
behavior: 'smooth'
}
}
}
})
演示