我在网站和工具上完成安全扫描后得到以下响应,说明如下:
方法lambda()将未经验证的数据发送到下面的网络浏览器: 我很困惑如何管理它。
.html("$ " + formatMoney($("#financial_sales_price").val() - total_subtotals_val));
有人可以协助解决此漏洞。
答案 0 :(得分:0)
您应该使用.text()
代替.html()
。
它更慢,但更安全 - 任何可能的HTML数据都将显示为entifies,而不是作为html触发。看这里的例子:
$(function(){
$("#div1").html('<a href="example.html">Link</a><b>hello</b>');
$("#div2").text('<a href="example.html">Link</a><b>hello</b>');
$("#div3").html('<a href="example.html">Link</a>');
$("#div4").text('<a href="example.html">Link</a>');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="div1"></div>
<div id="div2"></div>
<hr/>
<div id="div3"></div>
<div id="div4"></div>
<div id="work"></div>
答案 1 :(得分:0)
1.parse to Number
.html("$ " +
formatMoney(
parseFloat($("#financial_sales_price").val())
- parseFloat(total_subtotals_val)
));
2.使用xss-filters模块