在AJAX响应的succcess
方法中,我的目标是以XSS安全的方式执行以下操作:
- 删除选择框中所有现有的
options
。 - 替换同一选择框中的选项。
下面是一种删除和替换选项的方法,但我不太相信这种策略是完全XSS安全的:
success: function (data) {
$('#mySelBox').children().remove();
$.each(data, function (index, value) {
$('#mySelBox').append('<option value="' + value.id + '">' + value.description + '</option>');
});
}
具体而言:
- 我不确定
value.id
在这种上下文中是否是XSS安全的。 - 我不确定
value.description
在这种情况下是否安全。
参考OWASP XSS cheatsheet):
[确保]所有变量都经过验证,然后被转义或净化,这被称为完美的耐注入性。
为此,我提出以下问题:
- 在上面的上下文中,逃避和净化
value.id
的可靠方法是什么? - 在上述情况下,逃避和清理
value.description
的可靠方法是什么?
我还发现了这篇XSS预防文章,它让我意识到XSS预防是多么复杂,因为没有一个单一的解决方案:解决方案完全取决于上下文。
1条答案
按热度按时间ojsjcaue1#
不使用连接的HTML字符串,而是使用DOM API创建
<option>
元素: