我有以下的js代码
var a = window.location.href.substring(0,window.location.href.lastIndex('/')+1) + "logout.jsp";
setTimeout(function(){
window.location.href = a;
},1000);
当我对上述文件运行强化扫描时,它在上述行中显示出安全风险,包括动态代码评估:代码注入。 现在我无法理解如何修复它。我是否需要为window.href添加任何编码器或如何解决此问题。 如果我们编码,我需要做什么。
答案 0 :(得分:1)
如果我正确理解了逻辑,那么您试图获取没有页面名称的URL的路径,然后您打算重定向到它。
如果这是正确的,您可以使用
使其正常工作var a = "logout.jsp";
setTimeout(function(){
window.location.href = a;
},1000);
它应该原则上摆脱漏洞,但我不完全确定该工具是否检测到其中的任何其他漏洞。
答案 1 :(得分:0)
我找到了以下链接......也许它可以帮到你:
这是误报。
报告虚假代码注入漏洞是一个众所周知的问题 使用HP Fortify和has confused developers before。刚刚强化 做Javascript代码的基本静态分析,不能去 任意深入了解它是如何工作的。作为@AlexanderOMara 建议,它似乎发现潜在的危险
version: '3.2' services: nginx: image: nginx volumes: - type: bind source: ../app target: /var/www/app php: image: php volumes: - type: bind source: ../app target: /var/www/app
函数,可以setTimeout()
作为字符串 将作为代码执行的参数,就像setInterval()
一样。这个 这种漏洞,该工具旨在发现:eval()
但在你的情况下,没有用户提供的,未经过滤的输入
setTimeout('alert(' + document.location.hash.split('#')[1] + ')', 0);
功能因此看起来很安全。离开你 来自链接线程的一个很好的结论:我的建议是停止运行HP强化报告。 或者支付五千美元或者其他任何美元去他们的班级,这样你就可以真正了解他们的关键词。
Arminius回答。