我正在使用制动器安全工具来查找我的Web应用程序中的安全问题。 Brakeman在js.erb
扩展文件中向我展示了两次xss攻击。
是我的js.erb文件
<head>
<script>
$(function () {
Highcharts.getOptions().colors = Highcharts.map(Highcharts.getOptions().colors, function (color) {
return {
radialGradient: { cx: 0.5, cy: 0.3, r: 0.7 },
stops: [
[0, color],
[1, Highcharts.Color(color).brighten(-0.3).get('rgb')] // darken
]
};
});
// Build the chart
$('#highpie1').highcharts({
chart: {
plotBackgroundColor: null,
plotBorderWidth: null,
plotShadow: false
},
title: {
text: ''
},
credits: {
enabled: false
},
tooltip: {
pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
},
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
point: {
events: {
click: function () {
var scan_result = this.name
value = this.y;
//alert(" 1. click on ok Button to see Data")
location.href ="/batches/drilldown_result?scan_result="+scan_result; //Will take you to Google.
}
}
},
dataLabels: {
enabled: true,
format: '<b>{point.name}</b>: {point.percentage:.1f} %',
style: {
color: (Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black'
}
}
}
},
series: [{
type: 'pie',
name: 'calculated',
size:'40%',
data: <%= @result1 %> ***************** I am getting xss attack here
}]
});
});
</script>
</head>
<body>
<div id="highpie1"></div>
<p id ="tsv">
</body>
我使用rails提供的退出字符串的sanitize方法解决了这些xss问题。
但我的问题是在我的其他html.erb
视图文件中,我正在显示模型属性而不对它们进行消毒。为什么brakeman没有为这些文件html.erb
文件提供xss攻击问题,只提供js.erb
文件。 rails 4是否自动转义html.erb
file ??