前端用location.href安全漏洞的问题

前端用location.href安全漏洞的问题

代码中有 window.location.href = ${window.location.origin}/#/full-screen
报告检测出安全漏洞
Cross-Site Scripting: DOM

请问这怎么修复啊,我就是需要跳转到指定页面

我需要这么跳转的原因是,我有如下几个模块

www.baidu.com/#/full-screen 假设这是登录页面

www.baidu.com/module1/#/home

www.baidu.com/module2/#/home

www.baidu.com/module3/#/home

module1,module2,module3是ngxin路径,每个路径是一个子项目
只有www.baidu.com是有登录页面的,所以当我在www.baidu.com/module3/#/home失去登录的时候其实根路径是www.baidu.com/module3,所以这么跳转window.location.href" title="location.href">location.href = '/#/full-screen'其实是无法到达www.baidu.com/#/full-screen


回答:

这样是不行的
window.location.href = ${window.location.origin}/#/full-screen
但是这样是可以的
window.location.href = ${origin}/#/full-screen

我感觉应该是location.origin可能被篡改,但是扫描工具不知道origin是个什么鬼东西,所以就可以了


回答:

应该是这里检测到了变量可能被控制的风险,但是如果实在 globalThis 下,这里的 origin 属性应该是只读的,不能被修改,是可以被信任的,但是在一些时候他就不能被信任了。

// 1

(function (window) {

console.log(window.location.origin)

})({ location: { origin: 'http://xx.com' } })

// 2

{

let window = { location: { origin: 'http://xx.com' } }

console.log(window.location.origin)

}

根据需要你这里可以改成下面这样:

window.location.href = '/#/full-screen'


回答:

是被什么工具扫描了?

那你写死跳转地址呢?
window.location.href = www.baidu.com/#/full-screen

不然就在nginx做401重定向?或者让后端做重定向。

以上是 前端用location.href安全漏洞的问题 的全部内容, 来源链接: utcz.com/p/937517.html

回到顶部