我有以下代码来处理我的仪表板.js 我的项目中的文件 通过HP FOD工具扫描,在线上发现了以下漏洞:
var selectOption = $("#county option[value=" + selectValue + "]").text();
工具说:
处理程序中的 lambda(( 方法.js将未经验证的数据发送到 Web 浏览器在上面的线上。
首先,你没有说selectValue
来自哪里(我认为这是重要的一点(,静态分析所能完成的事情总是有限制的。
无论如何,我现在能想到的最坏情况是获取一个与页面上任意项目匹配并删除它们的选择器:
var selectValue = "''], *, foo[bar";
var selector = "#county option[value=" + selectValue + "]";
var selectOption = $(selector);
console.log("Final selector: %s", selector, selectOption.length);
console.log("Selected items: %s", selectOption.length);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
这意味着变量selectValue
可以包含任何内容,它用于填充可以提交到服务器的选项的值。
如果您确定在服务器上清理了国家/地区选项,则已解决问题。
任何HTML表单元素都可能被篡改,无论如何都应该在服务器上进行清理。