安全团队将以下代码报告为跨站点脚本。
redirect: function redirect(ajax, response, status) {
window.location = response.url;
});
他们以更好的方式提供了写作样本
$(document).ready(function(){
$("#myDiv").on("click", "button", function(){
var eid = $("#eid").val();
$("resultsDiv").append(eid);
});
});
但我如何为我的代码做到这一点?
答案 0 :(得分:0)
它是response.url参数的潜在跨站点脚本,因为如果它包含用户输入并且用户输入javascript: alert(1)
,它将在某些浏览器中运行。这是否可利用取决于具体情况(调用redirect
的方式和参数以及使用的浏览器。)
其他代码确实没有任何意义。 :)
至于修复,它还取决于上述情况。确保调用者不包含用户输入,和/或在redirect()
中你可以实现输入验证(例如,response.url以'http'开头,不包含'javascript:'等)
另请注意,如果不是跨站点脚本,则它可以是一个开放的重定向。