【发布时间】:2019-03-27 05:59:19
【问题描述】:
当我尝试调试它时,在循环结束后,它总是以整个页面被替换为文本“XSS”而结束,尽管能够正确填充所有内容。附上 之前和循环结束之后的图像。
//Populate
var table = document.getElementsByClassName("table")[0];
var col = [];
for (var i = 0; i < TABLE_DATA.length; i++) {
for (var key in TABLE_DATA[i]) {
if (col.indexOf(key) === -1) {
col.push(key);
}
}
}
for (var i = 0; i < TABLE_DATA.length; i++) {
var row = table.insertRow(1);
for (var j = 0; j < 4; j++) {
var tabCell = row.insertCell(j);
tabCell.innerHTML = TABLE_DATA[i][col[j]];
}
}
<!doctype>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1, maximum-scale=1">
<title>Javascript Exercise</title>
<link rel="stylesheet" href="css/bootstrap.min.css">
</head>
<body>
<div class="container">
<h2>JavaScript Exercise</h2>
<form class="form-horizontal" role="form">
<div class="form-group">
<button id="start" type="button" class="btn btn-default">start random</button>
<button id="stop" type="button" class="btn btn-default">stop random</button>
<button id="sort" type="button" class="btn btn-default">sort</button>
</div>
</form>
<div class="contents">
<table class="table">
<thead>
<tr>
<th>Id</th>
<th>Image</th>
<th>Name</th>
<th>Price</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
<script src="json/data.js"></script>
<script src="js/app.js"></script>
</body>
</html>
【问题讨论】:
-
xss 通常表示跨站脚本攻击。如果发生此类攻击,请检查您提供的数据(查看是否存在
-
我猜你有一个XSS vulnerability 并且该表中的一些数据被污染了。将
tabCell.innnerHTML替换为tabCell.textContent就可以了。 -
有趣...有效!谢谢弗拉兹!
标签: javascript json